• HALCON边缘检测


    HALCON边缘检测

    边缘检测的算法分类

    基于查找的方法

    通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向,是基于一阶导数的边缘检测算法

    基于零穿越的方法

    通过寻找图像二阶导数零穿越来寻找边界,通常是拉普拉斯过零点或者非线性差分表示的过零点,是基于二阶导数的边缘检测算法

    Prewitt算子

    通过利用像素点上下、左右邻点灰度差,在边缘处达到极值的方法检测边缘。它的方程和Sobel算子完全一样,因此都考虑了邻域信息,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响,因此对灰度和噪声较多的图像处理得较好。

    卷积模板如下

    A= [ 1 1 1 0 0 0 − 1 − 1 − 1 ] \left[ 111000111 \right] 101101101

    B= [ 1 0 − 1 1 0 − 1 1 0 − 1 ] \left[ 101101101 \right] 111000111

    prewitt_amp (ImageReduced, ImageEdgeAmp)
    threshold (ImageEdgeAmp, Regions, 25, 80)
    
    • 1
    • 2

    检出效果
    在这里插入图片描述

    Kirsch算子

    Kirsch算法由K0K7八个方向的模板决定,将K0K7的模板元素分别与当前像素点的3×3模板区域的像素点相乘,然后选八个值中最大的值作为中央像素的边缘强度。

    卷积模板如下

    A= [ − 3 − 3 5 − 3 0 5 − 3 − 3 5 ] \left[ 335305335 \right] 333303555

    B= [ − 3 5 5 − 3 0 5 − 3 − 3 − 3 ] \left[ 355305333 \right] 333503553

    C= [ 5 5 5 − 3 0 − 3 − 3 − 3 − 3 ] \left[ 555303333 \right] 533503533

    D= [ 5 5 − 3 5 0 − 3 − 3 − 3 − 3 ] \left[ 553503333 \right] 553503333

    E= [ 5 − 3 − 3 5 0 − 3 5 − 3 − 3 ] \left[ 533503533 \right] 555303333

    F= [ − 3 − 3 − 3 5 0 − 3 5 5 − 3 ] \left[ 333503553 \right] 355305333

    G= [ − 3 − 3 − 3 − 3 0 − 3 5 5 5 ] \left[ 333303555 \right] 335305335

    H= [ − 3 − 3 − 3 − 3 0 5 − 3 5 5 ] \left[ 333305355 \right] 333305355

    kirsch_amp (ImageReduced, ImageEdgeAmp1)
    threshold (ImageEdgeAmp1, Regions2, 160, 255)
    
    • 1
    • 2

    检出效果

    在这里插入图片描述

  • 相关阅读:
    授予渔,从0开始搭建一个自己想要的网页
    【多线程】线程池
    介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
    【C++修炼之路】1. 初窥门径
    【2022国赛模拟】[SDWC Day4] 数列——树形DP
    Spark和Hbase环境变量冲突解决办法
    leetcode题型分析《链表》
    【PHPWord】PHPWord 根据word模板生成的内容动态生成目录以及页码更新(完整示例源码)
    NAT模式和桥接模式的区别
    为什么多数情况下GPT-3.5比LLaMA 2更便宜?
  • 原文地址:https://blog.csdn.net/baidu_24565387/article/details/126659180