(04)opencv Canny边缘检测(包含Canny函数介绍)

第一步:功能说明

canny算子的图像处理用于提取图像的边缘的

1.调用头文件

2.以cv命名程序空间用来存放要运行的程序

3.进入主函数

 1.载入原图像

 2.显示原图像

 3.定义存放图像数据的变量

4将RGB图像转换成灰度图像,所调用的函数为cvtColor,不同类型得图像数据之间的转换,调用形式为cvtColor(原始图像,转换之后的图像,图像类型转换的形式);

将RGB图像转换成灰度图像CV_BGR2GRAY();这个和matlab中的转换形式有差别

5.Canny算子的调用形式,Canny(灰度图像,变换之后的图像,3,9,3);

6.显示canny算子提取后的图像。

7.用waitKey来等待按键的按下,程序结束

第二步:效果图展示

原图


边缘检测图

第三步:代码展示


第四步:代码中重要函数解释

voidCanny(InputArray image,OutputArray edges,doublethreshold1,doublethreshold2,intapertureSize=3,boolL2gradient=false)


第一个参数,InputArray类型的image,输入图像,即源图像,填Mat类的对象即可,且需为单通道8位图像。

第二个参数,OutputArray类型的edges,输出的边缘图,需要和源图片有一样的尺寸和类型。

第三个参数,double类型的threshold1,第一个滞后性阈值。

第四个参数,double类型的threshold2,第二个滞后性阈值。

第五个参数,int类型的apertureSize,表示应用Sobel算子的孔径大小,其有默认值3。

第六个参数,bool类型的L2gradient,一个计算图像梯度幅值的标识,有默认值false。

需要注意的是,这个函数阈值1和阈值2两者的小者用于边缘连接,而大者用来控制强边缘的初始段,推荐的高低阈值比在2:1到3:1之间。

你可能感兴趣的:((04)opencv Canny边缘检测(包含Canny函数介绍))