#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
//Canny边缘检测的一般过程:
//转成灰度图
//降噪
//用Canny算子(此时已经得到了边缘)
//将边缘作为掩码,拷贝原图到效果图上,得到彩色的边缘
int main(int argc, char** argv)
{
Mat src = imread("E:\\VS2015Opencv\\vs2015\\project\\picture\\cat.jpg");
Mat src1 = src.clone();
imshow("原图", src);
Mat dst, edge, gray;
//初始化输出图
dst.create(src1.size(), src1.type());
dst = Scalar::all(0);
//转成灰度图
cvtColor(src1, gray, COLOR_BGR2GRAY);
//均值滤波降噪,也可以用其他滤波方法
blur(gray, edge, Size(3, 3));
//运行canny算子,得到边缘
Canny(edge, edge, 3, 9, 3);
//掩膜的存在使得只有边缘部分被copy,得到彩色的边缘
src1.copyTo(dst, edge);
imshow("效果图", dst);
waitKey(0);
return 0;
}
边缘检测的相关原理和步骤
转载于:https://www.cnblogs.com/fcfc940503/p/11282329.html
原文链接:https://blog.csdn.net/weixin_30342827/article/details/99668938
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~