CERN/TIGRE

Tomosynthesis - reconstuction rotation issue

JingYao0512 opened this issue · 5 comments

Expected Behavior

The reconstruction object should be located in same place.

Actual Behavior

  • The SID (DSD) is 97 cm.
  • The maximum thickness of hand phantom is 6 cm.
  • The object is directly placed on the detector.
  • The reconstruction object will rotate with increasing depth. The following GIF image is reconstructed result.
    (The reconstructed images are cropped to 500x400 resolution)
    1_degree_enhance

Code to reproduce the problem (If applicable)

The geometry definition follows.

% Distances
geo.DSD = 970;                               % Distance Source Detector      (mm)
geo.DSO = 940;                               % Distance Source Origin        (mm)

% Detector parameters
geo.nDetector=[1501; 1501];				   % number of pixels              (px)
geo.dDetector=[0.14; 0.14]; 				   % size of each pixel            (mm)
geo.sDetector=geo.nDetector.*geo.dDetector; % total size of the detector    (mm)

% Image parameters
geo.nVoxel = [60;  800; 800];
geo.dVoxel = [1; 0.2625; 0.2625] ;
geo.sVoxel = geo.nVoxel .* geo.dVoxel;

% Offsets
Airgap = 0;                                % DBT airgap (mm)
geo.offOrigin= [-60; 0; 0] ;
geo.offDetector=[0; 0];

geo.accuracy=0.1;                     % Variable to define accuracy of
geo.COR=0;                               % y direction displacement for

angles = linspace(20,-20,41);
tubeangle = angles(1) - angles(end);
angles = deg2rad(angles);
nprojs = size(angles,2);

geo.mode='cone';                            

staticDetectorGeo

R = (geo.DSD-geo.DSO);
geo.DSD = geo.DSD-(R-R*cos(angles))
geo.offDetector = [R*sin(angles); zeros(1, size(angles,2))];
geo.rotDetector = [zeros(1,size(angles,2)); zeros(1,size(angles,2)); -angles];

Specifications

  • MATLAB version: R2019B
  • OS: Windows 10 x64
  • CUDA version: 10.2

Thanks, I will try to investigate.

Admitedly, I have myself never tried DBT data and everything in TIGRE has been validated by third party users of TIGRE, so I am not entirely sure if all is correct. DBT is a tough one, as due to the very limited angular sampling that you have, the results you show may be correct, as limited angle artifacts are almost unavoidable.
Do you have a compercial DBT recon to compare against?

Have you checked if the angles are negative? its a very common issue

@AnderBiguri
Thanks for your response. Do you mean the geo.offDetector which angle is negative?
I don't have a commercial DBT, so I can't compare it.

I will try to check the angle issue to see whether improve the image quality or not.
Thank you!

Hi @JingYao0512 , I meant angles=-angles;. A really really common error is giving TIGRE the angles in the opposite direction. in DBT its really hard to know if there is such mistake by looking at the image, as the images tend to look bad anyway. So double and triple check the geometry!

Closing from lack of response, but feel free to open again if you have issues.