逆radon变换matlab,Radon变换及其Matlab代码实现

Radon变换和Hough变换类似,最初是用于检测图像中的直线(例如笔直的街道边沿、房屋的边沿、

笔直的电线等)。

关于Hough变换,可以参考OpenCV中的代码和示例(其实除了Hough Lines还有Hough Circles等等变种),

此处不再赘述。

关于Radon变换,可以参考wiki或者百科,或者网络上的其他资料介绍。

这里做一个简单的总结。

首先准备一张灰度化的图像,及黑白图像,然后检测图像的边缘(如Canny算子,Sobel算子等等,

主要是灰度梯度方法吧)

假设我们得到一幅图像的边缘图像,然后找出这些边缘中的直线(段),除了之前的Hough算法之外,

这里使用Radon变换。

Radon变换核心在于“线积分”,针对一幅图像,具体来说就是:

设置一个方向(水平自左至右为0度,垂直自下至上为90度,以此类推)

按照这个方向对图像进行“列向量求和”

以0度为例,就是从图像的第1列开始,计算这一列上所有像素的灰度值之和;如此一直计算到最后一列。

以30度为例,如下图,X'为积分方向,对红色垂线所在列的像素进行灰度值叠加求和,

得到积分如图中的淡蓝色小块(仅作示意,可能不准确)

你可能感兴趣的:(逆radon变换matlab)