OpenCV——边缘检测入门、Canny边缘检测

#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;
}
边缘检测的相关原理和步骤




浙公网安备 33010602011771号