DBT-Reconstruction icon indicating copy to clipboard operation
DBT-Reconstruction copied to clipboard

Help Needed - Shift observed on reconstructed slices

Open alex-feb opened this issue 4 years ago • 2 comments

Hi I came across this algorithm recently and I tried to reconstruct using FBP algorithm. The reconstructed images has the objects in every slices in shifted manner. My object size is around 55mm and tried to reconstruct into 110 slices each of 0.5mm. My machine parameters are shared below in the parameter settings. The image are taken from the machine with a static detector. I am sharing the projection data as mat file along with a reconstructed slice in jpg format. It would be helpful for if you can provide me some inputs for resolving this.

44

The projection data is available in below link https://www.sendspace.com/file/emnp03

%% Physical Parameters Settings % Breast voxels density parameter.nx = 2304; % number of voxels (columns) parameter.ny = 2945; % number of voxels (rows) parameter.nz = 110; % number of voxels (slices)

% Detector panel pixel density parameter.nu = 2304; % number of pixels (columns) parameter.nv = 2945; % number of pixels (rows)

% Single voxel real size (mm) parameter.dx = 0.098; parameter.dy = 0.098; parameter.dz = 0.5;

% Single detector real size (mm); parameter.du = 0.098;
parameter.dv = 0.098;

% X-ray source and detector distances parameter.DSD = 650; % Distance from source to detector (mm) parameter.DSO = 608; % Distance from source to the top of object (mm) parameter.DDR = 12; % Distance from detector to pivot (mm) parameter.DSR = parameter.DSD - parameter.DDR; % Distance from source to pivot (mm) parameter.DAG = 1; % Distance of Air Gap (mm)

% Detector and object full real sizes (mm) parameter.sx = parameter.nx.*parameter.dx;
parameter.sy = parameter.ny.*parameter.dy;
parameter.sz = (parameter.nz.*parameter.dz)+parameter.DAG;
parameter.su = parameter.nu.*parameter.du; parameter.sv = parameter.nv.*parameter.dv;

% Detector and object Volume grid settings parameter.xs = (parameter.nx-1:-1:0)*parameter.dx; parameter.ys = (-(parameter.ny-1)/2:1:(parameter.ny-1)/2)*parameter.dy; parameter.zs = (0:1:parameter.nz-1)*parameter.dz + parameter.DAG; parameter.us = (parameter.nu-1:-1:0)*parameter.du; parameter.vs = (-(parameter.nv-1)/2:1:(parameter.nv-1)/2)*parameter.dv;

% Number of Projections parameter.nProj = 7;

% Angle settings (Degrees) parameter.tubeAngle = 12; % Tube Angle parameter.tubeDeg = linspace(-parameter.tubeAngle/2,parameter.tubeAngle/2,parameter.nProj);

parameter.detAngle = 0; % Detector Angle parameter.detectorDeg = linspace(-parameter.detAngle/2,parameter.detAngle/2,parameter.nProj);

%% General parameters

% Slice range to be saved parameter.sliceRange = 1:parameter.nz; % Region of interest (ROI) to store parameter.iROI = 1:parameter.ny;
parameter.jROI = 1:parameter.nx;

% Bit number quatization parameter.bitDepth = 16; % Load from dicom header

Regards

alex-feb avatar Jun 12 '20 11:06 alex-feb