栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

OpenCV学习(2)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenCV学习(2)

上手opencv图像处理:图像显示;图像腐蚀;图像模糊;canny边缘检测

一,图像显示

新版本opncv中,图像显示过程非常简单,只需要用imread函数载入到新版本的图像存储数据结构mat类中,然后用imshow函数显示即可,代码如下:

#include
#include 
#include
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
	cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
	Mat img = imread("E:/pictures/12.png");//载入图像
	imshow("picture", img);//显示图像
	waitKey(0);//等待任意按键按下
	return 0;

}

执行效果图:

二,图像腐蚀

作为opencv实现最为基本的形态学运算之一————腐蚀,即用图像中的暗色部分“腐蚀”掉图像中的高亮部分,代码如下:

#include//opencv highgui 头文件
#include//opencv 图像处理头文件
#include
#include 
#include
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
		cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
		Mat img = imread("E:/pictures/12.png");//载入图像
		imshow("原图",img);//显示图像
		//进行腐蚀操作
		Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
		Mat dstImage;
		erode(img,dstImage, element);
		//显示效果图
		imshow("效果图:腐蚀操作", dstImage);
		waitKey(0);//等待任意按键按下 
		return 0;

}

运行结果图:

 三,图像模糊

即用Opencv对图像进行均值滤波操作。主要使用进行均值滤波操作的blur函数,代码如下:

#include//opencv highgui 头文件
#include//opencv 图像处理头文件
#include
#include 
#include
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
		cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
		Mat img = imread("E:/pictures/12.png");//载入图像
		imshow("原图",img);//显示图像
		//进行均值滤波操作
		Mat dstImage;
		blur(img,dstImage, Size(7,7));
		//显示效果图
		imshow("效果图:均值滤波", dstImage);
		waitKey(0);//等待任意按键按下 
		return 0;

}

运行结果如下:

四,canny边缘检测

 即:载入图片,并将其转成灰度图,再用blur函数进行图像模糊以降噪,再用canny函数进行边缘检测,最后进行显示。

#include//opencv highgui 头文件
#include//opencv 图像处理头文件
#include
#include 
#include
using namespace cv;//包含cv命名空间
int main()
{
		cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
		Mat img = imread("E:/pictures/12.png");//载入图像
		imshow("原图",img);//显示图像
		//进行均值滤波操作
		Mat dstImage,edge,grayimage;//参数定义
		//1,创建与img同类型和大小的矩阵(dst);
		dstImage.create(img.size(), img.type());
		//2.将原图像转换为灰度图像
		cvtColor(img, grayimage, COLOR_BGR2GRAY);
		//3.先使用3*3内核来降噪
		blur(grayimage,edge, Size(3,3));
		//4.运行canny算子
		Canny(edge, edge, 3, 9, 3);
		//显示效果图
		imshow("效果图:canny边缘检测", edge);
		waitKey(0);//等待任意按键按下 
		return 0;

}

运行结果展示:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698881.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号