2017年数学建模A组练习代码

clear,clc
%%5处理图形
D=xlsread('D:\sparename\Documents\2017\A\A.xls',5)
% imagesc(D)
R=iradon(D,[0:179]+30,512)
imagesc(R)
clear,clc
%%1处理图形
A=xlsread('D:\sparename\Documents\2017\A\A.xls',1)
imshow(A)
%%附件2
figure
B=xlsread('D:\sparename\Documents\2017\A\A.xls',2)
imagesc(B)

题目1

%% 求探测器距离d
B=xlsread('A题附件.xls',2);
imagesc(B)
W=sum(B>0);
d=80/max(W)
%% 求旋转中心偏移量
imin=min(W),jmin=find(W(:)==imin);%得投影最小长度imin探测器
i=jmin(1);
x=find(B(:,i)>0)%此时对应角度的所有接受的探测器
% 512/2得到近似中心探测器编号,而(max(x)+min(x))/2)得到椭圆中心对应的探测器编号。编号之差乘d得到距离。
nx=(max(x)+169)
idx=(512/2-(max(x)+169)/2)*d;
jmax=150-90;
y=find(B(:,jmax)>0);%此时对应角度的所有接受的探测器
idy=(512/2-(max(y)+min(y))/2)*d;
%%求偏移角度
alpha=180-jmin
j=jmin(2)
x=find(B(:,j)>0);%此时对应角度的所有接受的探测器
jdx=(512/2-(max(x)+169)/2)*d;
jmax=150-90
y=find(B(:,jmax)>0)%此时对应角度的所有接受的探测器
jdy=(512/2-(max(y)+min(y))/2)*d;
dx=-(idx+jdx)/2
dy=(idy+jdy)/2

%%求偏移角度
alpha=180-jmin
%% 验证
B=[zeros(200,180);B;zeros(200,180)]

theta=[0:1:179]+30
% 基于R-L滤波器的滤波反投影法
R= iradon(B,theta,'Hann')
figure
imshow(R)

题目2

clear,clc
%%表三处理
C=xlsread('D:\sparename\Documents\2017\A\A.xls',3)
C=[zeros(200,180);C;zeros(200,180)];
R=iradon(C,[0:179]+30,'Hann');
imagesc(R)
d=0.2768
dx=-9.2042
dy=5.8131
x=ceil(-dx/d)+size(R,1)/2+[ceil(-50/d):ceil(50/d)];
y=ceil(dy/d)+size(R,1)/2+[ceil(-50/d):ceil(50/d)];
% 调整大小
R=imrescale(R(y,x),[256,256])
T=flipud(R)
D=xlsread('D:\sparename\Documents\2017\A\A.xls',4)
d=100/256
c=ceil(D(:,1)/d)
r=ceil(D(:,2)/d)
ix=sub2ind(size(T),r,c);
rate=[D T(ix)];
imagesc([0,100],[0,100],T);
colorbar;
hold on
plot(D(T(ix)==0,1),D(T(ix)==0,2),'wx');
plot(D(T(ix)~=0,1),D(T(ix)~=0,2),'r+');
set(gca,'ydir','normal')
% 
% figure
% imagesc([0,179]+30,[1,512],R)
%函数
function new=imrescale(old,newsize)
scale=numel(old)/prod(newsize);
new=imresize(old,newsize)*scale;
new(new<1e-1)=0;
end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sparename

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值