人工智能和计算机视觉(5)-边缘检测
计算机视觉-边缘检测
边缘检测
边缘主要包括轮廓线边缘和纹理边缘
寻找图像中的边缘是为了找到变化非常强烈的相邻像素,例如从0-255或从255-0。

Robert算子(Robert operator)



I[i, j] : 图像中的像素值
通过高斯滤波器卷积图像,我们将得到
S [ i , j ] = G [ i , j : σ ] ∗ I [ i , j ] S[i,j]=G[i,j:\sigma]*I[i,j] S[i,j]=G[i,j:σ]∗I[i,j]
σ \sigma σ是高斯分布。
使用以下公式创建一个过滤器:
P [ 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 P[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 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])/2
边缘像素
M [ i , j ] = P [ i , j ] 2 + Q [ i , j ] 2 M[i,j]=\sqrt{P[i,j]^2+Q[i,j]^2} M[i,j]=P[i,j]2+Q[i,j]2
边缘像素的 θ \theta θ
θ [ i , j ] = a r c t a n ( Q [ i , j ] , P [ i , j ] ) \theta[i,j] = arctan(Q[i,j], P[i,j]) θ[i,j]=arctan(Q[i,j],P[i,j])
广义的霍夫(Hough)变换
在目标图像中寻找任何形状。
包含2个主要模型。
- 保留模板形状的细节。
- 搜索目标图像内的形状。
在创建一个形状之前,选择图像的中心点。
对于属于边缘的像素,将直线向中点拖动,并收集以下值。
GHT: R-Table

算法
1.找到目标图像的边缘,并收集梯度值grad(梯度方向)。
2.对于每个边缘像素,使用步骤1得到的值 θ \theta θ(梯度方向)来搜索存储在R表中的值 α \alpha α和r,这些值被储存在R-Table中。
3.对于在R-Table中搜索得到的 α \alpha α和r的值,根据该值而不是公式中的a和r的值。


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


参考链接:
Find edges in 2-D grayscale image - MATLAB edge - MathWorks United Kingdom
更多推荐


所有评论(0)