1. 边缘检测:Halcon的8种必备技巧

作者:蛮不讲李2023.05.11 10:49浏览量:135

简介:Halcon学习之边缘检测函数

Halcon学习之边缘检测函数

  1. Sobel边缘检测函数
    Sobel函数的一般表达式如下:
    sobel_x(I)={2(x-h),if x>h,0,otherwise
    sobel_y(I)={2
    (y-v),if y>v,0,otherwise
  2. 对称Sobel边缘检测
    Sobel检测相邻像素灰度值的方差(std dev)并作空间均值或中心差分运算,可以得到对称的Sobel边缘检测结果。
  3. 非对称Sobel边缘检测
    同时应用以上两种Sobel边缘检测算法,可以分别得到非对称的Sobel边缘检测结果。
  4. 双侧Sobel边缘检测
    对于彩色图像,我们有4个水平像素和3个垂直像素,每个Sobel算子在这5个分量上的系数是不同的。通常用的是双侧Sobel算子。这种算子对图像中心的分量与周围的分量给予了同等程度的关注。当梯度方向恒定时,这样做可以减少梯度信息的畸变。
  5. 峰值检测函数
    另一种常用的边缘检测方法是峰值检测。在这种方法中,函数的输入是一个二值化图像,并返回一个输出,该输出表示在图像中与输入图像相应位置上最大灰度值差异为1的像素数量。峰值检测通常用于边缘检测和特征提取。
  6. Canny边缘检测函数
    Canny算子是一种经典的边缘检测算法,具有较高的边缘检测灵敏度和抗噪性能。它的一般表达式如下:
  7. 低阈值:50%的最小值(弱边缘)
  8. 高阈值:2倍的最小值(强边缘)
  9. 自适应阈值:根据局部区域的像素值动态调整阈值
  10. 非极大值抑制:应用于高阈值区域以去除“蝴蝶状”或不稳定的边缘响应;用于低阈值或非边缘区域以获取更好的细节和边缘响应
  11. Roberts边缘检测函数
    Roberts算子是一种简单但非常有效的边缘检测算法。它的一般表达式如下:
  12. 低阈值:20%的最小值(弱边缘)
  13. 高阈值:4倍的最小值(强边缘)
  14. Sigmoid函数
    Sigmoid函数被广泛用作阈值处理。这个函数被定义为:1-y=e−ax,其中y是输出,a是斜率,x是输入。通常情况下,若a小于0,则y接近于0;若a大于等于0,则y接近于1。通过这个函数,可以将一个范围内的数值映射到0~1之间。
  15. Hamming窗口
    Hamming窗口是一种对角线长度为2的窗口,通常用于二值化处理。这个窗口被定义为将像素分成两个区域:窗口内为白色,窗口外为黑色。在图像处理中,我们经常使用Hamming窗口。
  16. Prewitt窗口
    Prewitt窗口与Hamming窗口类似,但通常具有不同的卷积核参数(零频率响应曲线)。Prewitt窗口通常用于二值化处理和细化边缘。
  17. Roberts-Hamming窗口
    Roberts-Hamming窗口是Roberts窗口和Hamming窗口的结合。它通常用于二值化