详解拉东(Radon)变换原理、直线检测、代码实现

详解拉东(Radon)变换原理、直线检测、代码实现一 Radon 变换 参考 Radon 变换 Radon 变换是使用一组参数来表示一条直线 当选定某个方向时 那么一副图像可以被变换成的函数的一条直线 具体推导可以参考上述链接 二 直线检测 基于 Radon 变换的直线检测的目的就是检测根据角度变化时出现的 局部峰值 即可以确定直线的方向

大家好,我是讯享网,很高兴认识大家。

一、Radon变换

参考:Radon 变换

        Radon变换是使用一组参数\left ( \theta ,\rho \right )
讯享网来表示一条直线,当选定某个方向时,那么一副图像可以被变换成\rho的函数的一条直线,具体推导可以参考上述链接

二、直线检测

        基于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

讯享网

 

小讯
上一篇 2025-03-04 10:03
下一篇 2025-02-21 15:58

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48172.html