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学习-Canny边缘检测

OpenCV | OpenCV实战从入门到精通系列三 --canny边缘检测

OpenCV | OpenCV实战从入门到精通系列三 --canny边缘检测

OpenCV——Canny边缘检测

我想知道opencv边缘检测中的sobel,canny算子的数学原理需要去理解吗,还是这直接记住它的功能就好!