亲宝软件园·资讯

展开

python opencv Sobel、Laplace、canny算子的边缘提取 以及参数解析

宇~ 人气:0

前提:各种算子不完全区分好坏,但根据我实际操作分析得到,有的算子之间效果大相径庭,但有的也很相似,也就是各有各的用法,这里按

Sobel、Laplace、canny三种算子作比较,看其结果

 

一、  Sobel、Laplace、canny边缘提取()

  1. Sobel算子边缘提取

注释:gray 灰度转换后的图像,前面省略了一部灰度转换的步骤,后面代码会补上

1,表示x方向的差分阶数,1或0------------------------------>如果只写一个1,代表x方向提取---》1,0

1,表示y方向的差分阶数,1或0------------------------------->如果只写一个1,代表y方向提取---》0,1

sobel = cv2.Sobel(gray, cv2.CV_8U, 1, 1)#sobel算子边缘检测

PointInvert_sobel=255-sobel#反色

  

    2.Laplace算子边缘提取

注释:这里要说的是通过对比sobel算子的结果,发现Laplace比sobel效果更好,可以说是加强版,效果如下所示

laplace = cv2.Laplacian(gray, cv2.CV_8U, ksize=3)#laplace算子边缘检测

PointInvert_laplace=255-laplace

 

    3.Canny算子边缘提取

注释:上一节提到过:其效果多变,主要是看设置的阈值的范围,

当我们改变阈值后,图像后渐渐过滤掉一些背景,当然,重在阈值的选取上,当阈值选大的时候,也是会将图像的特征完全损坏的。

canny=cv2.Canny(gray, 50, 150)#canny边缘检测
PointInvert_canny=255-canny#canny图像反色
函数中阈值1和阈值2两者的小者用于边缘连接,而大者用来控制强边缘的初始段,推荐的高低阈值比在2:1到3:1之间

 

二、四种图像的代码演示

  

 

三、源码

 

加载全部内容

相关教程
猜你喜欢
用户评论