首页 > 后端开发 > Python教程 > 使用Python的Canny边缘检测器

使用Python的Canny边缘检测器

William Shakespeare
发布: 2025-02-28 09:49:10
原创
883 人浏览过

边缘检测是基于轮廓的对象识别的至关重要的图像分析技术,对于图像信息恢复至关重要。 它提取关键功能,例如线条和曲线,通常由高级计算机视觉和图像处理算法使用。 强大的边缘检测算法准确地识别了主要边缘,同时抑制了噪声引起的虚假边缘。 边缘代表图像强度(像素值)的重大局部变化,通常发生在区域边界处。本教程解释了Canny Edge检测算法及其Python实现。

chany边缘检测器

> >以其发明者John F. Canny(1986)的名字命名,Canny探测器以灰度图像为输入,并输出图像突出显示强度不连续性(边缘)。 该过程涉及:

降低噪声:

高斯卷积使输入图像平滑,降低噪声。
  1. 梯度计算:第一导数操作员突出了具有高空间衍生物的区域。 使用X和Y衍生物确定梯度幅度和方向,对于边缘方向识别至关重要。
  2. 非最大抑制:
  3. 此步骤将边缘变细。 该算法沿梯度山脊跟踪,将非ridge像素设置为零,从而导致边缘线。 这涉及将梯度与邻居进行比较;仅保留最大梯度。>
  4. 滞后阈值:
  5. 两个阈值,(upper)和(下),带有
  6. ,控制边缘跟踪。 跟踪从上方的点开始,然后继续直到梯度降至以下。 上方的点始终是边缘; >下方的点仅在t1>上方的点上方时t2t1 > t2 t1高斯内核宽度和/t2阈值是影响Canny检测器输出的参数。 t1t1 Python实现t2t1
  7. 显示了两种方法:使用

t1t2使用

> install

(例如,在ubuntu上函数(在scikit-image模块中)应用了Canny检测器。 OpenCV使用示例图像“ boat.png”(如下所示):

scikit-image代码:

输出(边缘检测的图像):scikit-image sudo apt-get install python-skimagecanny() feature

参数调整产生不同的边缘检测结果。

使用Canny Edge Detector Using Python

>安装OpenCV(请参阅操作系统的相关安装指南)。 OPENCV的Canny()函数执行边缘检测。

代码:

from skimage import io, feature

im = io.imread('boat.png')
edges = feature.canny(im)
io.imshow(edges)
io.show()
登录后复制

参数:im(图像),下阈值(25),上阈值(255),L2gradient=False(使用L1-norm)。 matplotlib显示结果。

输出(边缘检测的图像):

Canny Edge Detector Using Python

结论

该教程使用scikit-imageOpenCV涵盖了Canny边缘检测器及其直接实现,证明了其在边缘检测中的有效性。

以上是使用Python的Canny边缘检测器的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板