function [ EM ] = iterativeCT( O, sensors, sequence)
% CT Iterative Reconstruction
% Recorded Projection along direction 1 (vertical sum)
% QUESTA RIGA VIENE FORNITA
% RP_1 = sum(O);
RP_1 = [0 0 4 16 4 0 0];
% Redistribution Vector along direction 1
EM_row = RP_1 ./ sensors;
% Estimated Matrix along direction 0° by duplicating the row t times
EM = repmat(EM_row, sensors, 1);
% Obtain the grayscale intensity and plot first guess matrix
I = mat2gray(EM);
% Primo grafico
figure
subplot(1, length(sequence), 1);
imshow(I);
title(sequence(1))
for i = 2:length(sequence)
% Caso 45°
if sequence(i) == 45
% Somma diagonale di EM per ottenere Estimated Projection
% Riga
EP = diagonalSum( EM, sensors );
% Somma diagonale di O per ottenere Recorded Projection
% Riga
% RP = diagonalSum( O, sensors ); % QUESTA RIGA VIENE FORNITA
RP = [0 0 0 0 2 4 8 6 4 0 0 0 0];
% Ottengo la Compensating Profile
% Riga
CP = RP - EP;
% Distribuzione dei valori in diagonale
CM = emDiagonal(CP, sensors);
% Caso 135°
elseif sequence(i) == 135
% TEMPORANEO, DA FARE
CM = zeros(sensors, sensors);
% Caso 90° o 270°
elseif (sequence(i) == 90 || sequence(i) == 270)
% Somma orizzontale di EM per ottenere Estimated Projection
% Colonna
EP = sum(EM,2);
% Somma orizzontale di O per ottenere Recorded Projection
% Colonna
% RP = sum(O,2); % QUESTA RIGA VIENE FORNITA
RP = [0; 1; 4; 12; 6; 1; 0];
% Ottengo la Compensating Profile
% Colonna
CP = RP - EP;
% Colonna dei valori distribuiti
CM_column = CP ./ sensors;
% Duplico la colonna per il numero di sensori
CM = repmat(CM_column, 1, sensors);
% Caso 0° o 180°
elseif (sequence(i) == 0 || sequence(i) == 180)
% Somma orizzontale di EM per ottenere Estimated Projection
% Riga
EP = sum(EM);
% Somma orizzontale di O per ottenere Recorded Projection
% Riga
% RP = sum(O); % QUESTA RIGA VIENE FORNITA
RP = [0 0 4 16 4 0 0];
% Ottengo la Compensating Profile
% Riga
CP = RP - EP;
% Riga dei valori distribuiti
CM_row = CP ./ sensors;
% Duplico la riga per il numero di sensori
CM = repmat(CM_row, sensors, 1);
end
% Estimated Matrix
EM = EM + CM;
% Obtain the grayscale intensity and plot
I = mat2gray(EM);
subplot(1, length(sequence), i);
imshow(I);
title(sequence(i))
end
end
matlab-基于matlab的CT图像滤波反投影算法仿真-源码
版权申诉
140 浏览量
2021-09-14
23:30:03
上传
评论
收藏 4KB RAR 举报
mYlEaVeiSmVp
- 粉丝: 1890
- 资源: 19万+
最新资源
- 基于Python天气动态大屏代码和数据(可做毕设/课设)
- .NET框架的身份管理和认证-Identity框架
- 图像超分辨率基准数据集
- VB6.0Access进销存信息管理系统.7z
- MATLAB是由美国MathWorks公司开发的一款商业数学软件,被誉为“矩阵实验室” 它集成了数值分析、矩阵计算、科学数据可视
- 数据库课程设计通常包括一系列的教学资源和材料,这些资源旨在为学生提供全面的学习支持 首先,课程通常提供一套完整的教材或讲义,介绍
- TCP2ComV1.1.5.1免费好用的串口转TCP工具.zip
- Python以其简洁易读、功能强大的特性吸引了大量开发者 它的语法设计清晰,使得初学者能够更快地掌握编程的基本概念 同时,Pyt
- Springboot集成Mybatispuls操作mysql数据库
- Pages-SUB-Convert-mian.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈