等弧度扇束的投影——matlab實現

時間:2020-1-31
作者:老李

等弧度扇束的投影的投影

工作的步湊分爲以下四個次序

% 探測器形式爲等弧度探測器

1.找出扇束放射源的位置

2.確定扇束的投射範圍

3.表達射線

4.對射線加總起來

代碼如下

%% generate fanbeam projection
%% 2020-1-31
% 探測器形式爲等弧度探測器
% 1.找出扇束放射源的位置
% 2.確定扇束的投射範圍
% 3.表達射線
% 4.對射線加總起來
close all; clear; clc;
%% GenerateModel 
views = 360;%放射源的位置
N = 600;%N爲圖片的半徑
%製圖
x1 = 0; y1 = 0; r1 = 600; mu1 = 0.5;
x2 = 200; y2 = 200; r2 = 150; mu2 = 1;
vec = -N:N;
[xx,yy] = meshgrid(vec,-vec);%生成座標網格
img = zeros(2*N+1,2*N+1);%此時圖像大小爲(12011201img((xx - x1).^2 + (yy - y1).^2 <= r1^2) = mu1;
img((xx - x2).^2 + (yy - y2).^2 <= r2^2) = mu2;
figure('name','cirle in circle'); imshow(img, []); title('Original image');
%% Projection by exist function
D = ceil(sqrt(600.^2+600.^2));%半徑經過計算爲849,but function demand at least 850
D0 = 850;
pic1 = fanbeam(img,D0,'FanSensorGeometry','arc','FanSensorSpacing',1,'FanRotationIncrement',1);
figure;imshow((flipud(pic1')),[]);colorbar;title('fanbeam projection by exist function')
%% 找出放射源的地址
% 使用圖像正上方的位置作爲起點,逆時針旋轉360% 每一次投放的角度爲180度
V = zeros(views,2);
v0 = [0 D0];%正上方位置(起始位置)
for i =1:views
    theta = pi*i/180;
    V(i,1) = cos(theta).*v0(1) - sin(theta).*v0(2);
    V(i,2) = sin(theta).*v0(1) + cos(theta).*v0(2);
end
%% 確定放射線的表示
% 不需要擴展圖片
% 扇束的投射範圍是-9089% 以放射源到圖像中心的線的直線爲第一條線
% 1.表達起始直線
% 2.表達投影
P = zeros(360,180);%投影圖的大小
v = 0:179;
beta = 0:359;
kk = -2*D0:2*D0;
lineB_x = zeros(180,4*D0+1);
lineB_y = zeros(180,4*D0+1);
line0x = zeros(1,4*D0+1);
line0y = zeros(1,4*D0+1);
for j = 1:360
    for i = 1:180
        Vtheta = pi*v(i)/180;
        Btheta = pi*beta(j)/180;
        line0x = V(j,1) + kk.*cos(Btheta);
        line0y = V(j,2) + kk.*sin(Btheta);
        lineB_x(i,:) = cos(Vtheta).*(line0x-V(j,1)) - sin(Vtheta).*(line0y-V(j,2)) + V(j,1);
        lineB_y(i,:) = sin(Vtheta).*(line0x-V(j,1)) + cos(Vtheta).*(line0y-V(j,2)) + V(j,2);
    end
    temp = interp2(xx, yy, img, lineB_x, lineB_y, 'linear',0);
    t = temp';
    P(j,:) = sum(t);
end
figure;imshow(P,[]);colorbar;title('fanbeam projection')

效果如下:
原圖:
在這裏插入圖片描述
效果:
在這裏插入圖片描述

發佈了43 篇原創文章 · 獲贊 8 · 訪問量 7453
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章