OpenCV图像处理笔记[06]

31. canny边缘检测原理

  • Canny边缘检测的一般步骤

    1. 去噪

      • 边缘检测容易受到噪声的影响。因此,在进行边缘检测前,通常需
        要先进行去噪。
      • 通常采用高斯滤波器去除噪声。
      • 让临近的像素具有更高的重要度。对周围像素计算加权平均值,较近的像素具有较大的权重值。
    2. 梯度

      • 对平滑后的图像采用sobel算子计算梯度和方向。
      • 梯度的方向一般总是与边界垂直
      • 梯度方向被归为四类:垂直, 水平,和两个对角线
    3. 非极大值抑制

      • 在获得了梯度和方向后,遍历图像,去除所有不是边界的点。
      • 实现方法:逐个遍历像素点,判断当前像素点是否是周围像素点中具有相同
        方向梯度的最大值
    4. 滞后阈值

      image-20200331171827060

33. 理论基础

  • 图像金字塔: 同一图像的不同分辨率的子图集合

    • 向下取样:从高分辨率到低分辨率图像,缩小图像

      • 从第 i 层获取第 i + 1层, Gi -> Gi+1

        1.   对图像 G<sub>i</sub> 进行高斯核卷积。
        
        1. 删除所有的偶数行和列
      • 原始图像 M * N兮处理结果 M/2 * N/2
        每次处理后,结果图像是原来的1/4.
        上述操作被称为:Octave

      • 重复执行该过程,构造图像金字塔

    • 注意:向下会丢失信息

  • 向上取样:在每个方向上扩大为原来的2倍,新增的行和列以0填充。放大图像

    • 使用与“向下采用”同样的卷积核乘以4,获取“新增像素”的新值。

    • 注意:放大后的图像比原始图像要模糊。

    • 向上取样、向下取样不是互逆操作,经过两种操作后,无法恢复原有图像。

34. pyrDown函数及使用

​ 向下取样 : 将图像的尺度变小,变成原来的四分之一

  • **dst = cv2.pyrDown( src ) **
    • dst , 向下取样结果
    • src , 原始图像

35. pyrUp函数及使用

​ 向上取样 : 将图像的尺度变大,变成原来的四倍

  • **dst = cv2.pyrUp( src ) **
    • dst , 向下取样结果
    • src , 原始图像

36. 取样可逆性研究

​ 原始图像 向下取样 dst = cv2.pyrDown( src ) dst ,向下取样结果 src, 原始图像

​ M * N ---> M/2 * N/2

​ 原始图像 向上取样 dst = cv2.pyrUp( src ) dst ,向上取样结果 src, 原始图像

​ M * N ---> M2 * N2

图像先向上取样再向下取样(或者先向下取样再向上取样)的过程都是不可逆的

37. 拉普拉斯金字塔

  • 向下取样 : 图像尺度不断变小

  • 向上取样 : 图像尺度不断变大

  • 拉普拉斯金字塔

    ​ **Lii = Gi - PyrUp( PyrDown ( Gi )) **

    ​ Gi, 原始图像

    ​ Li, 拉普拉斯金字塔图像

posted @ 2022-08-03 11:05  Hecto  阅读(35)  评论(0)    收藏  举报