一、Radon变换
参考:Radon 变换
Radon变换是使用一组参数
讯享网来表示一条直线,当选定某个方向时,那么一副图像可以被变换成
的函数的一条直线,具体推导可以参考上述链接
二、直线检测
基于Radon变换的直线检测的目的就是检测根据角度变化时出现的“局部峰值”,即可以确定直线的方向,同时,峰值大小能够确定直线上点的个数,如下图的局部极大值,则有可能是一条直线的位置,当然进行检测之前需要获得图像中的轮廓,而不是直接对图像进行变换

三、代码实现
例如matlab官方的图像进行检测:

进行边缘检测:


然后选择不同的角度与距离,得到了一个二维数组:

其中较亮的点即为局部极大值,也就是第二部分所说的有可能是直线所在的位置

代码:
I = fitsread('solarspectra.fts'); I = rescale(I); figure imshow(I) title('Original Image') BW = edge(I); figure imshow(BW) title('Edges of Original Image') theta = 0:179; [R,xp] = radon(BW,theta); figure imagesc(theta, xp, R); colormap(hot); xlabel('\theta (degrees)'); ylabel('x^{\prime} (pixels from center)'); title('R_{\theta} (x^{\prime})'); colorbar
讯享网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48172.html