人工智能和计算机视觉(5)-边缘检测

边缘检测

边缘主要包括轮廓线边缘和纹理边缘

寻找图像中的边缘是为了找到变化非常强烈的相邻像素,例如从0-255或从255-0。

1

Robert算子(Robert operator)

234

I[i, j] : 图像中的像素值

通过高斯滤波器卷积图像,我们将得到

S[i,j]=G[i,j:σ]I[i,j]S[i,j]=G[i,j:\sigma]*I[i,j]

σ\sigma是高斯分布。

使用以下公式创建一个过滤器:

P[i,j]=(S[i,j+1]S[i,j]+S[i+1,j+1]S[i+1,j])/2Q[i,j]=(S[i,j]S[i+1,j]+S[i,j+1]S[i+1,j+1])/2P[i,j]=(S[i,j+1]-S[i,j]+S[i+1,j+1]-S[i+1,j])/2 \\ Q[i,j]=(S[i,j]-S[i+1,j]+S[i,j+1]-S[i+1,j+1])/2

边缘像素

M[i,j]=P[i,j]2+Q[i,j]2M[i,j]=\sqrt{P[i,j]^2+Q[i,j]^2}

边缘像素的θ\theta

θ[i,j]=arctan(Q[i,j],P[i,j])\theta[i,j] = arctan(Q[i,j], P[i,j])

广义的霍夫(Hough)变换

在目标图像中寻找任何形状。

包含2个主要模型。

  • 保留模板形状的细节。
  • 搜索目标图像内的形状。

在创建一个形状之前,选择图像的中心点。

对于属于边缘的像素,将直线向中点拖动,并收集以下值。

GHT: R-Table

5

算法

1.找到目标图像的边缘,并收集梯度值grad(梯度方向)。

2.对于每个边缘像素,使用步骤1得到的值θ\theta(梯度方向)来搜索存储在R表中的值α\alpha和r,这些值被储存在R-Table中。

3.对于在R-Table中搜索得到的α\alpha和r的值,根据该值而不是公式中的a和r的值。

67

因此,当比例Scale和旋转值Rotate被改变时,旧的方程式将被改变为新的方程式,如下所示:

89

参考链接:

Find edges in 2-D grayscale image - MATLAB edge - MathWorks United Kingdom


人工智能和计算机视觉(5)-边缘检测
https://fulequn.github.io/2022/08/Article202208082/
作者
Fulequn
发布于
2022年8月8日
许可协议