- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
滤波反投影
平行束滤波反投影
1100500121 赵伟伦
准备知识:
一维Fourier变换:
一维逆Fourier变换:
且有:
重要的性质:(卷积特性)
;
二维Fourier变换:
;
逆二维Fourier变换:
;
中心切片定理:
,
其中是的Radon变换:
解释:一个二元函数的Radon变换关于r的一维Fourier变换与这个二元函数的二维Fourier变换形式相等。
滤波反投影:
思路:
是滤波器
总结:
解释为:
投影数据先进行滤波
在对滤波数据进行投影
简单例子:
(大圆与小圆)通过已得到的正投影‘round.dat’经过滤波后,反投影后的图像。
正投影数据:
滤波图像:
反投影后的图像:
总的滤波反投影过程:
1,得到图像的正投影
2,滤波(投影与滤波器卷积)
3,反投影(一个像素所有角度的滤波函数值的和再乘以pi/views)
例子:
GUI界面实现:
修改前:
程序讲述:
主程序:
读入一张512*512的黑白图片,展示图片;求正投,展示正投结果;求滤波后的结果并展示;求反投影后的的结果并展示。
view=360;
bins=512;
U=1.5; %U=view_radius
P=zeros(view,bins);
clc;clear;
A = imread(angle.jpg);
width = 512;
height = 512;
A = im2double(A);
figure,imshow(A)
t1 = -1;
t2 = 1;
n= 2048;
dt = (t2-t1)/n;
bins = 512;
view = 360;
du = 3/(bins-1);
P = zeros(view,bins);
time = clock;
for i = 1:view
phi = (i - 1)*(pi/180);
for j = 1:bins
%将视野范围512等分(定义512个接受器)
r = (j - 1)*du - 1.5 + 0.5*du;
%设定第一个接受器的与探测器中心的距离
int = integral(r,phi,t1,t2,dt,width,height,A);
P(i,j) = int;
end
end
outtime = etime(clock,time);
s_png2=sprintf (angle.dat) ;
s_png2=strcat (D:\文件\ct\zwl\,s_png2) ;
fp = fopen(s_png2,wb);
fwrite(fp,P,float64);
fclose(fp);
s_png = sprintf(angle.dat);%angle
s_png = strcat(D:\文件\ct\zwl\,s_png);
fp = fopen(s_png,r);
P = fread(fp,view*bins,float64);
fclose(fp);
P = reshape(P,bins,view);
P = P;
U=1.5;
cellsize=2*U/bins;
theta0=2*pi/view;
figure, imshow(P);
integ=RL_filter(P,view,bins,cellsize);
figure, imshow(integ,[]);
Image=back_projection_circle(integ,cellsize,view,theta0,U);
figure,
imshow(Image,[])
s_png2=sprintf (R_L_projection1.dat) ;
s_png2=strcat (,s_png2) ;
fp = fopen(s_png2,wb);
fwrite(fp,Image,float64);
fclose(fp);
子函数1:
备注:将图像
积分区域转化为二维图像中的点的方法:
function int = integral(r,phi,t1,t2,dt,width,height,A)
int = 0;
for t = t1:dt:t2
x = r*cos(phi) - t*sin(phi);
y = r*sin(phi) + t*cos(phi);
%探测器与中心距离为r
文档评论(0)