使用MATLAB运行拉东变换与逆变换

 1.拉东变换

生成一个shepp-logan头部模型

选择投影角度为0-179,步进1°

 

clc
ph = phantom(256);  %phantom函数用于生成一个Shepp-Logan头模型256x256
figure(1), imshow(ph, []);  % 显示灰度图像

% 投影角度
theta = 0:1:179;  %角度0-179,步进1°

% 生成正弦图
sino = radon(ph, theta);  % 执行Radon变换获得正弦图
figure(2), imshow(sino, []);  % 显示正弦图
imagesc(sino),colormap(gray),colorbar%二
%imagesc:自动缩放读入的图像;
%colormap:定义图像显示的颜色;
%colorbar:用于显示色彩条;

对figure1(shepp-logan)拉东变换后,其正弦图Figure2如下所示。

至此,拉东变换从图形到正弦图就完成了。下面是在此基础上进行逆拉东变换

2.逆拉东变换

设置3个步进角度,生成3个正弦图,生成3个逆拉东变换图,并将其放在一个图中

解释

subplot(231),imagesc(sino1);意为设置一个2行3列的结构sino1为第1幅图

subplot(232),imagesc(sino2);意为设置一个2行3列的结构sino2为第2幅图

subplot(233),imagesc(sino3);意为设置一个2行3列的结构sino3为第3幅图

clc
ph = phantom(256);  %phantom函数用于生成一个Shepp-Logan头模型256x256
figure(1), imshow(ph, []);  % 显示灰度图像
% 投影角度
theta1 = 0:1:179;  %角度0-179,步进1°
theta2 = 0:5:179;  %角度0-179,步进5°
theta3 = 0:10:179; %角度0-179,步进10°

% 生成正弦图
sino1 = radon(ph, theta1); % 执行Radon变换获得正弦图
sino2 = radon(ph, theta2);
sino3 = radon(ph, theta3);

%Radon反变换
J1 = iradon(sino1,theta1);%Radon反变换
J2 = iradon(sino2,theta2);
J3 = iradon(sino3,theta3);

% 显示正弦图
figure(2)
subplot(231),imagesc(sino1);%imagesc:自动缩放读入的图像;
subplot(232),imagesc(sino2);
subplot(233),imagesc(sino3);
%设置图颜色,色彩条
colormap(gray),colorbar%colormap:定义图像显示的颜色;colorbar:用于显示色彩条;

%显示图像进行Radon反变换
subplot(234),imshow(J1);
subplot(235),imshow(J2);
subplot(236),imshow(J3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值