Opencv和C++实现canny边缘检测
Canny边缘检测主要包括: 图像的灰度化; 图像的高斯滤波; 计算出每一个像素点位置的梯度(X方向梯度、Y方向梯度、已经该点的梯度幅值)和方向角度; 局部非极大值抑制处理; 双阈值处理和连接处理; Canny算法思路参考下面的博客: https://blog.csdn.net/dcrmg/article/details/52344902 https://www.cnblogs.com/love6tao/p/5152020.html 我在下面直接给出可以运行的C++代码(Opencv2.4.9) #include <iostream> #include "opencv2/opencv.hpp" using namespace std ; using namespace cv; /* 生成高斯卷积核 kernel */ void Gaussian_kernel( int kernel_size, int sigma, Mat &kernel) { const double PI = 3.1415926 ; int m = kernel_size / 2 ; kernel = Mat(kernel_size, kernel_size, CV_32FC1); float s = 2 * sigma*sigma; for ( int i = 0 ; i < kernel_size; i++