opencv学习-Canny边缘检测
Posted 殇堼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv学习-Canny边缘检测相关的知识,希望对你有一定的参考价值。
Canny算法五步走
1.高斯模糊 - GaussianBlur
2.灰度转换 - cvtColor
3.计算梯度 – Sobel/Scharr
4.非最大信号抑制
5.高低阈值输出二值图像
Canny( src, edges, threshold1, threshold2, apertureSize = 3, bool L2gradient = false);
Canny(img, src, 115, 255)
threshold1,滞后过程的第一个阈值。
threshold2,滞后过程的第二个阈值。
T1, T2为像素阈值,大于T2的像素值都保留,小于T1都去除,从高于T2的像素出发,凡是大于T1而且相互连接的,都保留。最终得到一个输出二值图像。推荐的高低阈值比值为 T2: T1 = 3:1/2:1其中T2为高阈值,T1为低阈值
apertureSize,Sobel运算符的孔径大小。
L2gradient,一个标志,指示是否应使用更精确的L2来计算图像渐变幅度(L2gradient=true),或者是否应使用默认的L1(L2gradient=false)。
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img, src;
img = imread("D:/images/lena.png");
if (img.empty())
{
cout << "could not load image !";
return -1;
}
imshow("【输入图像】", img);
GaussianBlur(img, img, Size(5, 5), 0, 0);//高斯模糊操作
Canny(img, src, 115, 255);//canny边缘检测操作
imshow("边缘检测", src);
bitwise_not(src, src);//颜色取反操作
imshow("颜色取反后", src);
waitKey(0);
return 0;
}
以上是关于opencv学习-Canny边缘检测的主要内容,如果未能解决你的问题,请参考以下文章
学习 opencv---(11)OpenC 边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器
OpenCV | OpenCV实战从入门到精通系列三 --canny边缘检测