opencv中初学者必须了解的5个函数-灰度化、模糊、Canny边缘检测、膨胀和侵蚀

opencv中初学者必须了解的5个函数-灰度化、模糊、边缘检测、膨胀和侵蚀

使用OpenCV可以对彩色原始图像进行基本的处理,涉及到5个常用的处理:

示例代码,对原图进行灰度化、高斯模糊、Canny边缘检测、膨胀和侵蚀处理

示例代码如下:

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

/ Basic OpenCV Functions 
int main()
{
	std::string imgPath = "Resources/test.png";
	//std::string imgPath = "images/lena.jpg";

	cv::Mat imgSrc;
	cv::Mat imgGray, imgBlur, imgCanny, imgDilate, imgErode;
	imgSrc = cv::imread(imgPath);	// 读取原图像
	cvtColor(imgSrc, imgGray, COLOR_BGR2GRAY);	// 将原图转换成灰度图

	// 高斯模糊算法
	GaussianBlur(imgSrc, imgBlur, Size(3, 3), 3, 0);

	// Canny边缘检测算法
	Canny(imgBlur, imgCanny, 25, 75);

	// dilate and erode - 膨胀和腐蚀
	Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));
	dilate(imgCanny, imgDilate, kernel);	// 膨胀图

	erode(imgDilate, imgErode, kernel);	// 腐蚀化


	cv::imshow("Image Source", imgSrc);			// 显示原图
	cv::imshow("Image Gray", imgGray);			// 显示灰度图
	cv::imshow("Image Gaussian Blur", imgBlur); // 显示高斯模糊处理后的图像
	cv::imshow("Image Canny Detect", imgCanny);	// 显示Canny边缘检测后的图像
	cv::imshow("Image Dilation", imgDilate);	// 膨胀
	cv::imshow("Image Erode", imgErode);		// 腐蚀

	cv::waitKey(0);

	return 0;
}

VS2017中运行结果如下图所示:
原图和灰度图
高斯模糊和Canny边缘检测
膨胀和腐蚀图

参考资料

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值