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