Main Content

radon

拉东变换

说明

R = radon(I) 返回二维灰度图像 I 的拉东变换 R,角度范围为 [0, 179] 度。拉东变换是图像强度沿特定角度的径向线的投影。

R = radon(I,theta) 返回基于 theta 所指定角度的拉东变换。

示例

[R,xp] = radon(___) 返回向量 xp,其中包含与图像的每行对应的径向坐标。

示例

全部折叠

对于此图像,将坐标区刻度设为可见。

iptsetpref('ImshowAxesVisible','on')

创建示例图像。

I = zeros(100,100);
I(25:75, 25:75) = 1;

计算拉东变换。

theta = 0:180;
[R,xp] = radon(I,theta);

显示该变换。

imshow(R,[],'Xdata',theta,'Ydata',xp,'InitialMagnification','fit')
xlabel('\theta (degrees)')
ylabel('x''')
colormap(gca,hot), colorbar

Figure contains an axes object. The axes object with xlabel theta blank (degrees), ylabel x' contains an object of type image.

将坐标区刻度设为不可见。

iptsetpref('ImshowAxesVisible','off')

输入参数

全部折叠

灰度图像,指定为二维数值矩阵。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

投影角度(以度为单位),指定为数值标量或数值向量。

数据类型: double

输出参量

全部折叠

图像 I 的拉东变换,返回为下列项之一。

  • 如果 theta 是标量,则 R 是数值列向量,其中包含基于 theta 度的拉东变换。

  • 如果 theta 是向量,则 R 是矩阵,其中每列是基于 theta 中某一角度的拉东变换。

对应于 R 的每行的径向坐标,以数值向量形式返回。径向坐标是沿 x' 轴的值,该值与 x 轴呈逆时针方向 theta 度角。两个轴的原点均为图像的中心像素,定义为

floor((size(I)+1)/2)
例如,在 20×30 图像中,中心像素是 (10,15)。

算法

图像的拉东变换是其中每个像素的拉东变换的总和。

算法首先将图像中的每个像素分成四个子像素,并单独对每个子像素投影,如下图所示。

The center of four subpixels are projected into evenly spaced bins.

根据投影位置和 bin 中心之间的距离,每个子像素的贡献按比例拆分到两个最近的 bin。如果子像素投影到 bin 的中心点,则轴上的 bin 将获得子像素的完整值,即像素值的四分之一。如果子像素投影到两个 bin 之间的边界,则子像素值在这两个 bin 之间均匀拆分。

参考

[1] Bracewell, Ronald N., Two-Dimensional Imaging, Englewood Cliffs, NJ, Prentice Hall, 1995, pp. 505-537.

[2] Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 42-45.

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开