Matlab 如何在不使用Radon的情况下获得图像的投影

Matlab 如何在不使用Radon的情况下获得图像的投影,matlab,Matlab,我需要一个图像的radon变换,但是我不允许使用MATLAB的radon函数,所以我必须自己写 我为此做了一些研究,但没有找到任何令人满意的例子 有没有其他方法可以在不使用图像的情况下获得图像的投影 使用氡 如果没有,我如何编写自己的radon函数(至少一点) (线索) 我不知道这是否是您搜索的内容,但请注意: radon变换将2D/伪3D图像转换为1D强度等效图像。基本上,我们计算一行像素上所有角度θ的所有强度之和 Justin K.Romberg(莱斯大学)于 预测 %%This MATL

我需要一个图像的radon变换,但是我不允许使用MATLAB的radon函数,所以我必须自己写

我为此做了一些研究,但没有找到任何令人满意的例子

  • 有没有其他方法可以在不使用图像的情况下获得图像的投影 使用氡
  • 如果没有,我如何编写自己的radon函数(至少一点) (线索)

我不知道这是否是您搜索的内容,但请注意:

radon变换将2D/伪3D图像转换为1D强度等效图像。基本上,我们计算一行像素上所有角度θ的所有强度之和

Justin K.Romberg(莱斯大学)于

预测

%%This MATLAB function takes an image matrix and vector of angles and
%%then finds the 1D projection (Radon transform) at each of the angles.
%%It returns a matrix whose columns are the projections at each angle.
%% Written by : Justin K. Romberg

function PR = projections(IMG, THETA)

% pad the image with zeros so we don't lose anything when we rotate.
[iLength, iWidth] = size(IMG);
iDiag = sqrt(iLength^2 + iWidth^2);
LengthPad = ceil(iDiag - iLength) + 2;
WidthPad = ceil(iDiag - iWidth) + 2;
padIMG = zeros(iLength+LengthPad, iWidth+WidthPad);
padIMG(ceil(LengthPad/2):(ceil(LengthPad/2)+iLength-1), ...
    ceil(WidthPad/2):(ceil(WidthPad/2)+iWidth-1)) = IMG;
% loop over the number of angles, rotate 90-theta (because we can easily sum
% if we look at stuff from the top), and then add up.  Don't perform any
% interpolation on the rotating.
n = length(THETA);
PR = zeros(size(padIMG,2), n);
for i = 1:n
   tic
   tmpimg = imrotate(padIMG, 90-THETA(i), 'bilinear', 'crop');
   PR(:,i) = (sum(tmpimg))';
   THETA(i)
   toc
end

你能做傅里叶变换吗?事实上,它看起来像我正在寻找的东西。现在尝试理解代码,谢谢。没问题,如果你需要更多帮助,请尝试开发更多你的问题,并随时提问。我无法完全理解你给出的链接中提到的算法背后的想法。本页中的MATLAB代码为每个θ生成一个12x1矩阵。但为什么是12?另外,当我试图运行反投影代码时,它给出了一个错误,因为“projfilter”没有定义。我不知道抱歉,我曾经使用Radon,但我甚至没有尝试理解它,因为这不是必需的。我相信有一个工具箱可以做到这一点,但我并不抱歉。页面链接(以及最后的代码)是Radon变换的逆函数。Radon变换的代码位于靠近开头的一个称为“投影代码”的链接处。不完全正确。。。全Radon变换由求和强度的线段偏移和投影角度参数化。它将二维图像
f(x,y)
转换为另一个二维函数
R(s,θ)
。确实可以只对一个角度进行变换,但这不是完整的变换。我也可以只看一个图像的一个部分,但是把这个部分称为整个图像是不正确的。这一点很重要,因为进一步应用Radon变换通常需要围绕半圆的所有/多个角度。