|
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