Halcon 算子 edges_color

edges_color (Operator)

edges_color — Extract color edges using Canny, Deriche, or Shen filters.

作用:

利用过滤器提取彩色图片的边缘;

edges_color(Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : )

参数翻译(顺序对应以上参数顺序):

输入图像、

输出梯度图像、

输出边缘直方图、

输入滤波器( 'canny', 'deriche1', 'deriche2', 'shen', 'sobel_fast')、

输入平滑系数(0.2 ≤ Alpha ≤ 50.0)、

输入非极大值抑制('hvnms', 'inms', 'nms', 'none')、

输入滞后阈值下限、

输入滞后阈值上限

滞后性阈值的描述:

 使用边缘滤波,得到的边缘都是大于一个像素的轮廓,因此要对所得到的图像进行骨架化,从而得到比较清晰的边缘轮廓。有时候还需要进行非最大抑制处理

 这样,经过先对边缘幅度进行阈值分割,然后对分割出的区域进行骨架化处理,再进行非最大抑制处理,一般就可得到清晰的边缘。但是,有时候我们选择高的阈值以保证只将相关边缘选出时,边缘通常被割裂成诺干段;另一方面,如果选择低的阈值以保证边缘不会断裂成一段一段时,我们最终的分割结果中又会包含很多不相关边缘。针对这种情况,Canny提出来一种特殊的阈值分割算法来分割边缘:滞后阈值分割。

       滞后阈值分割使用两个阈值----高阈值和低阈值。边缘幅度比高阈值大的那些点立即作为安全边缘点被接受。边缘幅度比低阈值小的那些点被立即剔除。边缘幅度在高阈值和低阈值之间的那些点按如下原则处理:只有在这些点能按某一路径和安全边缘点相连时,他们才作为边缘点被接受。组成这一路径的所有点的边缘幅度都比低阈值要大。我们也能把这个过程理解为,首先边缘幅度大于高阈值的所有边缘点,然后在边缘幅度大于低阈值的情况下尽可能延长边缘。

描述:

1、为了定义多通道图像的边缘,多通道图像Image被认为是一个映射 其中n代表了图像的通道数;

2、梯度图返回在参数ImaAmp中;

3、除了滤波器sobel_fast外,边缘直方图返回在参数ImaDir中,sobel_fast不计算边缘方向来达到加速过滤器的作用;

4、除了‘sobel_fast’(其中滤波器宽度为3x3, Alpha被忽略),可以任意选择“滤波器宽度”(即平滑的数量),并可以通过调用info_edges来估计参数Alpha的具体值;

5、对于Deriche、Lanser和Shen滤波器,它随着参数Alpha的值的增加而减小,而对于Canny滤波器则增大;

6、宽”滤波器对噪声表现出较大的不变性,但也降低了检测小细节的能力;

7、非递归滤波器,如Canny滤波器,是使用滤波器掩码来实现的,因此,随着滤波器宽度的增加,执行时间也随之增加;相反,递归过滤器的执行时间不依赖于过滤器的宽度。因此,使用Deriche、Lanser和Shen滤波器可以实现任意的滤波器宽度,而不会增加运算符的运行时间;与Canny算子相比,随着滤波器宽度的增大,速度上的优势自然增大。

8、在边界处理中,递归滤波器假设在图像外部的像素的灰度值为零,而Canny算子则在图像边界处重复灰度值;

9、对于'sobel_fast',除了'none'之外,对NMS的所有值执行相同的非最大值抑制。此外,迟滞阈值操作总是执行。另外,对于“sobel_fast”,产生的边缘会变薄到一个像素的宽度。

10、如果不使用滞后阈值,则直接设成负值即可;

猜你喜欢

转载自blog.csdn.net/weixin_39829336/article/details/113368258