OpenCV Quick Start - Canny边缘检测
John Canny
关于他
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc//imgproc.hpp>
using namespace cv;
#pragma comment(lib,"opencv_world452d.lib")
int main(int argc, char** argv)
{
std::printf("OpenCV: %s\n", CV_VERSION);
Mat srcImg = imread("res/pig.jpg");
imshow("【原图】", srcImg);
Mat dstImg, edge, grayImage;
dstImg.create(srcImg.size(), srcImg.type()); // 新的大小一样的存储空间
cvtColor(srcImg, grayImage, COLOR_BGR2GRAY); // 彩色转灰度图
blur(grayImage, edge, Size(5, 5)); // 稍微模糊一下
//CV_EXPORTS_W void Canny( InputArray image, OutputArray edges,
//double threshold1, double threshold2,
//int apertureSize = 3, bool L2gradient = false );
Canny(edge, edge, 3, 9, 3); // Canny边缘检测
imshow("【处理】", edge);
waitKey(0);
return 0;
}
Canny函数前2个参数一个输入,一个输出,后面就是算法公式的参数了。这里需要注意,不进行降噪处理Blur也是可以的,但会比较多的小点。根据你的图片情况选择。