canny边缘检测算法步骤,canny边缘检测算法代码Python

  canny边缘检测算法步骤,canny边缘检测算法代码Python

  Canny:边缘检测算法:对于受白噪声影响的阶跃边缘是最优的。

  目的:

  返回二进制图像,非零值表示图像中存在边缘,并返回与边缘相关的比例和方向信息。

  标准:

  标准:不丢失重要边缘,不能有伪边缘。

  定位标准:实际边缘与检测到的边缘位置偏差最小。

  单个响应标准:将多个响应减少为单个边缘响应。该标准可以解决受噪声影响的边缘问题,并起到解决非平滑边缘检测算子的作用。

  步骤:

  a .使用高斯滤波器对图像去噪

  b .计算像素的梯度

  C.基于边缘检测使用非最大抑制NMS是步骤b的辅助

  d .使用双阈值来去除检测到的边缘上的假阳性也称为滞后阈值。

  e、分析所有的边以及它们之间的联系,保留真实的边,消除不明显的边。(一般这一步会省略)

  步骤说明:

  b .计算梯度

  与正交差分滤波器的卷积(Prewitt)

  生成水平方向导数图像H和垂直方向的导数图像V

  当振幅超过临界值时,就需要使用非最大抑制的方法来删除这些不需要的响应。

  c、抑制非极大值:搜索局部极大值,抑制非极大值。

  2分别处理与每个角度相关的像素。如果垂直于渐变的任何两个相邻像素具有较大的值,则其幅度将被设置为0。

  含义:这样可以保留边缘幅度分布最大值处的梯度,而远离最大值的梯度将被抑制。

  d双阈值去除假阳性和滞后阈值——基本属于最后阶段。

  为了防止给定阈值(振幅阈值,但有边缘/标记为边缘但实际上没有边缘)漏检或误检的现象,给定两个阈值x1,x2,其中x1x2,振幅超过x2的所有像素都标记为边缘—可以减少误检。振幅超过较小阈值x1的所有像素以及与现有边缘相连的像素也被标记为边缘,这可以减少遗漏的检测。

  import v2 import numpy as NP v2 . im read( img . jpg ,0) cv2.imwrite (canny.jpg ,cv2.canny (img,200,300)) cv2.imshow (canny ,cv2.imread (canny.jpg ))

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: