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

发布时间:2024年01月20日

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边缘检测
膨胀和腐蚀图

参考资料

文章来源:https://blog.csdn.net/ccf19881030/article/details/135722118
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。