首先将原图转换成灰度图,然后利用blur函数对图像进行模糊并以此来降噪,然后用canny函数进行边缘检测。
#include<opencv2/opencv.hpp>
// OpenCV图像处理头文件
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat srcImg = imread("1.jpg");
// 显示原图
imshow("原图", srcImg);
Mat dstImg, edge, grayImg;
// 创建与srcImg同类型大小的矩阵
dstImg.create(srcImg.size(), srcImg.type());
// 将原图转换成灰度图
cvtColor(srcImg, grayImg, CV_BGR2GRAY);
// 显示灰度图
imshow("灰度图", grayImg);
// 使用3*3内核来进行降噪处理
blur(grayImg, edge, Size(3,3));
// Canny算子
Canny(edge, edge, 3, 9, 3);
// 显示最终的结果
imshow("Canny边缘检测后", edge);
waitKey(6000);
return 0;
}
运行后的结果如下所示:
关于OpenCV和图像处理以及模式识别更多的学习资料将继续更新,敬请关注本博客。