• Edge Linking


    因为噪声的存在, 检测出来的edge points有很多都是不相邻的. 所以边缘检测算法通常都有最后的连接步骤: 将属于同一edge的不相邻点连接起来(TODO, 是用一条路径将它们连通, 把路径中的点也作为边缘点吗?)

    Local Processing

    最naive的做法就是检查每个已检测出边缘点的一个邻域, 将它与邻域内的相似点连接起来. 相似性的判断一般是用梯度强度与方向的差值表示: 当两个差值都小于各自指定的threshold时, 判定为相似.

    但这种做法的算法复杂度很高: 正比于边缘点数量, 正比于邻域面积. 有简化算法, 但局限性很大. (见DIP 10.2.7. Local Processing)

    Regional Processing

    前提是有一个RoI(Region of Interest). 得到RoI上的边缘点集后, 用一个多边形(闭合, CLOSE)或折线(开口, OPEN)近似的表达出edge. 这种算法的应用面较窄, 但算法本身感觉很精妙.
    关键点:

    • 输入的点集是有序排列的, 顺时针或逆时针.
    • CLOSED与OPEN的判断: 相邻点的距离都很相似(variance小于threshold)为CLOSE, 否则为OPEN.
    • A, B点可以取第一和最后一个点
    • 先计算出连接A B的直线, 然后计算其他点到这条直线的距离. 找到最大距离点, 若它的距离大于指定的threshold (T), 则将它作为新的顶点.

    Global Processing and Hough Transformation

    Hough Transformation的核心思想:

    • 将输入空间中的点转化为参数空间中的直线. 任意两不平行的直线都有交点.
    • 将参数空间划分一个个的cell, 统计落在每个cell内的交点的个数.
    • 找到个数局部最大的cell, 它包含的点都在由这个cell决定的曲线上. (这些点是来自于整张图片, 所以是global的.)

    算法精妙, 但应用有限, 至少现在对我没多大用处. 点到即止.

  • 相关阅读:
    【动画】看动画轻松理解「Trie树」
    浅析HTTP/2的多路复用
    HTTPS 详解
    PHP写时复制(Copy On Write)
    golang 几种字符串的拼接方式
    正排索引和倒排索引简单介绍
    传值还是传引用
    lvs与nginx区别
    Docker运行操作系统环境(BusyBox&Alpine&Debian/Ubuntu&CentOS/Fedora)
    原创-thanos组件(聚合多个prometheus组件)原理介绍
  • 原文地址:https://www.cnblogs.com/dengdan890730/p/6148554.html
Copyright © 2020-2023  润新知