OpenCV均值滤波+膨胀腐蚀+Canny

转自:https://blog.csdn.net/routine__007/article/details/80444840

1. 图像显示

#include<opencv2\opencv.hpp>
using namespace cv; //包含cv命名空间

void main(){
   Mat img = imread("1.jpg"); //载入图片
   imshow("【原始图】", img); //显示图像
   waitKey(0); //等待任意按键按下
}

在这里插入图片描述
2. 图像腐蚀
腐蚀,即用图像中的暗色部分“腐蚀”掉图像中的高亮部分。

#include<opencv2\highgui\highgui.hpp> //OpenCV highgui模块头文件
#include<opencv2\imgproc\imgproc.hpp> //OpenCV 图像处理头文件
using namespace cv; //包含cv命名空间

int main(){
   //载入图片
   Mat img = imread("1.jpg");
   //显示原图
   imshow("【原图】腐蚀操作", img);
   //进行腐蚀操作
   Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
   Mat dstimg;
   erode(img, dstimg, element);
   //显示效果图
   imshow("【效果图】腐蚀操作", dstimg);
   waitKey(0);
   return 0;
}

在这里插入图片描述
3. 膨胀
膨胀,和腐蚀相反,从图像直观来看,就是将图像光亮部分放大,黑暗部分缩小。

#include<opencv2\highgui\highgui.hpp> //OpenCV highgui模块头文件
#include<opencv2\imgproc\imgproc.hpp> //OpenCV 图像处理头文件
using namespace cv; //包含cv命名空间
 
int main(){
	//载入图片
	Mat img = imread("1.jpg");
	//显示原图
	imshow("【原图】膨胀操作", img);
	//进行膨胀操作
	Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
	Mat dstimg;
	dilate(img, dstimg, element);
	//显示效果图
	imshow("【效果图】膨胀操作", dstimg);
	waitKey(0);
	return 0;
}

在这里插入图片描述
4. 均值滤波

#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
using namespace cv;
 
int main(){
	//载入原图
	Mat img = imread("1.jpg");
	//显示原图
	imshow("【原图】均值滤波", img);
	//进行均值滤波操作
	Mat dstimg;
	blur(img, dstimg, Size(7, 7));
	//显示效果图
	imshow("【效果图】均值滤波", dstimg);
	waitKey(0);
	return 0;
}

在这里插入图片描述

5. canny边缘检测

#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
using namespace cv;
 
int main(){
	//载入原图
	Mat srcImage = imread("1.jpg");
	//显示原图
	imshow("【原图】Canny边缘检测", srcImage);
	Mat dstImage, edge, grayImage;
	//【1】创建于src同类型和大小的矩阵dst
	dstImage.create(srcImage.size(), srcImage.type());
	//【2】将原图像转换成灰度图像
	cvtColor(srcImage, 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;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ben121_/article/details/88913462