python opencv实现图像边缘检测

  

本文利用python opencv进行图像的边缘检测,一般要经过如下几个步骤:

  

<强> 1,去噪

  

如cv2.GaussianBlur()等函数;

  

<强> 2,计算图像梯度

  

图像梯度表达的是各个像素点之间,像素值大小的变化幅度大小,变化较大,则可以认为是出于边缘位置,最多可简化为如下形式:

  

 python opencv实现图像边缘检测

  

<强> 3,非极大值抑制

  

在获得梯度的方向和大小之后,应该对整幅图像做一个扫描,去除那些非边界上的点,对每一个像素进行检查,看这个点的梯度是不是周围具有相同梯度方向的点中最大的。如下图所示:

  

 python opencv实现图像边缘检测

  

<强> 4,滞后阈值

  

现在要确定那些边界才是真正的边界。这时我们需要设置两个阈值:minVal和maxVal。当图像的灰度梯度高于maxVal时被认为是真的边界,那些低于minVal的边界会被抛弃。如果介于两者之间的话,就要看这个点是否与某个被确定为真正的边界点相连,如果是就认为它也是边界点,如果不是就抛弃。如下图:

  

 python opencv实现图像边缘检测

  

在Python Opencv接口中,提供了精明的函数,可以对图像进行一键执行边缘检测只

  

接下来,利用精明的函数进行边缘检测的实验。

  

精明的函数需要指定几个参数:

  

1,需要进行边缘检测的原图
  2、阈值下限
  3、阈值上限
  

  

我们为了能够看到不同阈值范围对边缘检测结果的影响,设置了两个滑动条,来分别表示阈值上下限。

  

完整代码如下:

        # - * -编码:utf - 8 - *   ”“”   创建alt=" python opencv实现图像边缘检测“>
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

python opencv实现图像边缘检测