|
14 | 14 |
|
15 | 15 | s = readstruct([file.folder,'\',file.name]); |
16 | 16 |
|
17 | | - if ~strcmp(s.ScanParameter.HelixMode,'false') |
18 | | - error("Helix mode reading not implemented") |
19 | | - end |
| 17 | + |
20 | 18 | if ~strcmp(s.ScanParameter.Laminography, 'false') |
21 | 19 | error("Laminography mode reading not implemented") |
22 | 20 | end |
23 | 21 |
|
| 22 | + |
| 23 | + geo.offOrigin = [0;0;0]; |
| 24 | + geo.offDetector = [0;0]; |
| 25 | + |
24 | 26 | geo.nDetector = [s.Recon.ProjectionDimX; s.Recon.ProjectionDimY]; |
25 | 27 | geo.dDetector = [s.Recon.ProjectionPixelSizeX; s.Recon.ProjectionPixelSizeY]; |
26 | 28 | geo.sDetector = geo.nDetector.*geo.dDetector; |
|
31 | 33 |
|
32 | 34 | geo.DSD = s.Geometrie.SourceDetectorDist; |
33 | 35 | geo.DSO = s.Geometrie.SourceObjectDist; |
34 | | - geo.COR = s.Recon.ProjectionCenterOffsetX; |
| 36 | + geo.COR = -s.Recon.ProjectionCenterOffsetX*s.Recon.ProjectionPixelSizeX; |
35 | 37 |
|
36 | 38 | if s.Recon.ProjectionCount ~= s.Recon.ProjectionCountPer360deg |
37 | 39 | warning("Never tested with angles not in 360deg. If it doesnt work please contact tigre.toolbox@gmail.com to help improve this loader"); |
38 | 40 | end |
39 | 41 | angles=linspace(0,2*pi,s.Recon.ProjectionCount); |
40 | 42 | angles=-angles(1:end-1); |
41 | 43 |
|
| 44 | + if ~strcmp(s.ScanParameter.HelixMode,'True') |
| 45 | + z_step = -s.ScanParameter.HelixPerStepDistanceZ; |
| 46 | + offsetz=linspace(0,z_step*length(angles)-z_step,length(angles)); |
| 47 | + offsetz = offsetz-offsetz(end)/2; |
| 48 | + geo.offOrigin=[zeros(1,length(angles));zeros(1,length(angles));offsetz]; |
| 49 | + end |
42 | 50 |
|
43 | 51 | height = char(s.Geometrie.Slices.string()); |
44 | 52 | height = height(1:strfind(s.Geometrie.Slices.string,"mm")-2); |
|
0 commit comments