原标题:HALCON中级篇:边缘提取(像素精度)
边缘提取(像素精度)
传统的寻找边缘的方法,如在图像中暗/亮过度,是应用一个边缘滤波器,这些滤波器在寻找亮和暗区域之间边界的像素有效果。用数学术语来说,这意味着这些滤波器决定这图像的梯度。图像的梯度作为边缘振幅或者边缘的方向被返回。通过选取具有高边缘振幅的所有像素,区域之间的轮廓被提取。
HALCON提供了所有标准的边缘滤波器,如Sobel,Robert, Robinson, 或者Frei滤波器。除了这些以外,后期处理算子,如滞后阈值分割或者非最大值抑制,也没提供。除此之外,准确地决定边缘振幅和边缘方向的工艺级的滤波器被提供,这能够让你以灵活的方式去应用滤波器。
编辑
应用边缘滤波器的结果(a)振幅, (b)方向,(c)提取的边缘
请注意,除了这些经典的方法,HALCON为亚像素级精度和线提取和连续的后期处理和 特征提取的高级算子。
基本概念
典型的采用边缘滤波器有3个基本步骤组成:
采集图像
首先,一张图像需要被采集。
滤波器图像
在输入的图像上,一个边缘滤波器被应用,操作的结果是1或者2个图像。基本的结果是边缘振幅,其一般被存储在一个字节图像中,每个像素的灰度值代表了局部边缘梯度。可选的是,边缘的方向被返回。这些值被存储在一个所谓的方向图像中,其值1…179代表了被2除的角度度数。
提取边缘
应用边缘滤波器的结果是一个包含边缘振幅的图像。从这张图像上,用阈值分割算子,去选择具有给定最小边缘振幅的像素,这样就提取得到了边缘。结果得到的边缘一般都比一个像素宽,因此必须被细化。对于这个步骤,各种方法是可以的。
第一个例子
接下来的程序展示了边缘滤波器基本概念的一个例子。作为一个边缘滤波器,sobel_amp在模式为‘thin_sum_abs’, 3x3滤波结构下,被应用得到细边缘,然后算子threshold被用来提取边缘振幅大于20的所有像素。在结果区域中包含了一些边缘宽于1个像素的区块。因此,算子skeleton被应用到细化所有边缘,结果如上图所示。