• 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

    检出效果

    在这里插入图片描述

  • 相关阅读:
    SpringBoot分页其实很简单
    高效一键改写文章,智能伪原创工具轻松搞定
    C++ 多态虚函数常见问题
    隆云通二氧化硫传感器
    【图像处理】openCV中生成掩膜区域的方式以及Points的规则
    SpringBoot整合Junit
    [区块链go]windows系统中安装Go与环境变量配置
    docker常用操作
    在centos7下docker 制作 java8镜像,上传到阿里云镜像仓库
    iceberg建表与参数
  • 原文地址:https://blog.csdn.net/baidu_24565387/article/details/126659180