边缘检测(上)

作者: iamsonormal2333 | 来源:发表于2017-03-03 17:07 被阅读67次

前半部分的几种方法主要将一幅图像变换成只由边缘组成的图像,而后半部分的几种方法是将图像轮廓分离出来。当然这篇文章只是我对图像处理的理解,如果有不妥之处希望大家可以指出来。

卷积

在开始这个专题之前先要讲下卷积。寒假刚刚开始看的时候是一脸懵逼的,不太懂卷积是个什么鬼。虽然现在还是不太懂,不过大概懂了这个函数的用处(顺便一说,在信号与系统的课本里看到了卷积和拉普拉斯,不知道听完信号与系统是否对这些计算能有更深入的理解)。我将图像理解为几个二维数组的组成。例如YUV图像,可以理解成三个二维数组,二维数组的坐标代表像素点位置,其值分别代表该点Y、U和V三维的坐标。卷积则是相当于利用不同的卷积规则实现对图像的数据计算。后面的几种算法都是不同的卷积。

梯度和Sobel

导数计算便是一个基本的卷积。最常用来表示微分的操作是Sobel微分算子。在OpenCV中,使用cvSobel()函数实现

      cvSobel(
              const CvArr *src,
              CvArr *dst,
              int xorder,
              int yorder,
              int aperture_size = 3
      );

src和dst分别为输入输出图像,xorder和yorder分别代表求导的阶数,通常不会超过2。aperture_size表示方形滤波器的宽。在OpenCV 1.0中支持1、3、5、7。

拉普拉斯变换

拉普拉斯函数可以用二次导数的形式定义,在OpenCV中计算拉普拉斯算子时直接使用Sobel算子。

      void cvLaplace(
                      const CvArr *src,
                      CvArr *dst,
                      int aperture_size = 3
      );

拉普拉斯算子可以用于各种情况,通常的一个应用是检测团块。拉普拉斯算子的形式是沿X轴和Y轴二次导数之和,这就意味着周围值更高的单点或者小块会将这个函数值最大化,而周围是更低值的点将会使函数负值最大化。

当我们逼近类似边缘的不连续地方时导数会快速增长,而穿过这些不连续的地方时导数又会快速减小,所以导数在此范围内会有极值。

Canny算子

Canny算子与拉普拉斯算法不同的地方在于它首先求出x和y方向上的一阶导数,然后组合为四个方向上的导数,这些方向导数到达局部最大值的点就是组成边缘的候选点。

Canny算法最重要的一个新的特点是其仕途将独立边的候选像素拼装成轮廓。轮廓的形成是对这些像素运用滞后性阙值。大于上线阙值会被认为是边缘像素,小于下限阙值会被抛弃。OpenCV中的函数如下:

      void cvCanny(
           const CvArr * img,
           CvArr * edges,
           double lowThresh,
           double highThresh,
           int aperture_size = 3

lowThresh和highThresh分别代表上下限阙值。

相关文章

  • 边缘检测(上)

    前半部分的几种方法主要将一幅图像变换成只由边缘组成的图像,而后半部分的几种方法是将图像轮廓分离出来。当然这篇文章只...

  • opencv+python学习记录(二十)边缘检测

    边缘检测包含:Prewitt边缘检测、Sobel边缘检测、Scharr算子、Canny边缘检测、Laplacian...

  • 数字图像 - 边缘检测原理 - Sobel, Laplace,

    先来看张图,左边是原图,右边是边缘检测后的图,边缘检测就是检测出图像上的边缘信息,右图用白色的程度表示边缘的深浅。...

  • Canny边缘检测---OpenCV-Python开发指南(22

    什么是Canny边缘检测 Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。该方法由John F. Ca...

  • 霍夫变换与直线检测

    背景 霍夫变换应该是在边缘检测的基础上的,如果要在如下这张图中做直线的检测,opencv有很多边缘检测的算法得到一...

  • 从图像边缘到物体轮廓

    上一篇已经讲解了很多算子用来检测边缘,其中用得最多的是canny边缘检测。只有边缘还不够,有很多时候我们还需要获得...

  • Opencv第三课---边缘检测

    边缘检测 边缘检测是图像领域非常重要的一种处理手段,要理解边缘检测,首先要理解什么是边缘。边缘是图像局部强度具有非...

  • Task06 边缘检测

    6.1 简介 6.1.1 什么是边缘? 边缘是图像强度函数快速变化的地方 6.1.2 如何检测边缘? 为了检测边缘...

  • cv领域之边缘检测技术学习

    一、边缘检测简单介绍 边缘检测是图像分割中最常见的操作之一,一般提到边缘可能有三个概念: 边缘检测:定位边缘像素的...

  • 图像轮廓(1)

    边缘检测虽然能够检测出边缘,但是边缘不是连续的,检测到的边缘不是一个整体。图像轮廓是指将边缘连接起来形成一个整体 ...

网友评论

    本文标题:边缘检测(上)

    本文链接:https://www.haomeiwen.com/subject/bvgfgttx.html