Steps to reproduce:
- load 4D data set with ArbitraryTimeGeometry
- do cropping with image cropper
Cropping extent is done correctly.
TimeGeometry of original images:
TimeGeometry: ArbitraryTimeGeometry (00000211DA794540) TimeSteps: 32 GetGeometryForTimeStep(0): SlicedGeometry3D (00000211C3623F90) IndexToWorldTransform: Matrix: 0.999238 7.1306e-11 0.0390266 -0.00536632 0.990501 0.137399 -0.0386559 -0.137504 0.989746 Offset: [-64.0438, -75.3906, -42.3945] Center: [0, 0, 0] Translation: [-64.0438, -75.3906, -42.3945] Inverse: 0.999238 -0.00536632 -0.0386559 7.1306e-11 0.990501 -0.137504 0.0390267 0.137399 0.989747 Scale : 1 1 1 BoundingBox: ( 0,128 0,128 0,54 ) Origin: [-64.0438, -75.3906, -42.3945] ImageGeometry: 1 Spacing: [1, 1, 0.999999] EvenlySpaced: 1 DirectionVector: [0.0390267, 0.137399, 0.989747] Slices: 54 GetPlaneGeometry(0): PlaneGeometry (00000211C76F96E0) IndexToWorldTransform: Matrix: 0.999238 7.1306e-11 0.0390266 -0.00536632 0.990501 0.137399 -0.0386559 -0.137504 0.989746 Offset: [-64.0438, -75.3906, -42.3945] Center: [0, 0, 0] Translation: [-64.0438, -75.3906, -42.3945] Inverse: 0.999238 -0.00536632 -0.0386559 7.1306e-11 0.990501 -0.137504 0.0390267 0.137399 0.989747 Scale : 1 1 1 BoundingBox: ( 0,128 0,128 0,1 ) Origin: [-64.0438, -75.3906, -42.3945] ImageGeometry: 1 Spacing: [1, 1, 0.999999] ScaleFactorMMPerUnitX: 1 ScaleFactorMMPerUnitY: 1 Normal: [0.0390266, 0.137399, 0.989746] MinimumTimePoint: 0 ms MaximumTimePoint: 720 ms min TimeBounds: Step 0: 0 ms Step 1: 22 ms Step 2: 45 ms Step 3: 67 ms Step 4: 89 ms Step 5: 112 ms Step 6: 134 ms Step 7: 157 ms Step 8: 180 ms Step 9: 202 ms Step 10: 227 ms Step 11: 250 ms Step 12: 272 ms Step 13: 295 ms Step 14: 317 ms Step 15: 339 ms Step 16: 362 ms Step 17: 384 ms Step 18: 407 ms Step 19: 430 ms Step 20: 452 ms Step 21: 475 ms Step 22: 497 ms Step 23: 519 ms Step 24: 542 ms Step 25: 564 ms Step 26: 587 ms Step 27: 610 ms Step 28: 632 ms Step 29: 655 ms Step 30: 677 ms Step 31: 700 ms max TimeBounds: Step 0: 22 ms Step 1: 45 ms Step 2: 67 ms Step 3: 89 ms Step 4: 112 ms Step 5: 134 ms Step 6: 157 ms Step 7: 180 ms Step 8: 202 ms Step 9: 227 ms Step 10: 250 ms Step 11: 272 ms Step 12: 295 ms Step 13: 317 ms Step 14: 339 ms Step 15: 362 ms Step 16: 384 ms Step 17: 407 ms Step 18: 430 ms Step 19: 452 ms Step 20: 475 ms Step 21: 497 ms Step 22: 519 ms Step 23: 542 ms Step 24: 564 ms Step 25: 587 ms Step 26: 610 ms Step 27: 632 ms Step 28: 655 ms Step 29: 677 ms Step 30: 700 ms Step 31: 720 ms
TimeGeometry of cropped image:
TimeGeometry: ProportionalTimeGeometry (00000211C76F89F0) TimeSteps: 32 FirstTimePoint: 0 StepDuration: 1 ms Time Bounds: 0 - 32 GetGeometryForTimeStep(0): SlicedGeometry3D (00000211C7580EB0) IndexToWorldTransform: Matrix: 0.999238 7.1306e-11 0.0390266 -0.00536632 0.990501 0.137399 -0.0386559 -0.137504 0.989746 Offset: [-32.0682, -75.5623, -43.6315] Center: [0, 0, 0] Translation: [-32.0682, -75.5623, -43.6315] Inverse: 0.999238 -0.00536632 -0.0386559 7.1306e-11 0.990501 -0.137504 0.0390267 0.137399 0.989747 Scale : 1 1 1 BoundingBox: ( 0,68 0,128 0,54 ) Origin: [-32.0682, -75.5623, -43.6315] ImageGeometry: 1 Spacing: [1, 1, 0.999999] EvenlySpaced: 1 DirectionVector: [0.0390267, 0.137399, 0.989747] Slices: 54 GetPlaneGeometry(0): PlaneGeometry (00000211C76F9770) IndexToWorldTransform: Matrix: 0.999238 7.1306e-11 0.0390266 -0.00536632 0.990501 0.137399 -0.0386559 -0.137504 0.989746 Offset: [-32.0682, -75.5623, -43.6315] Center: [0, 0, 0] Translation: [-32.0682, -75.5623, -43.6315] Inverse: 0.999238 -0.00536632 -0.0386559 7.1306e-11 0.990501 -0.137504 0.0390267 0.137399 0.989747 Scale : 1 1 1 BoundingBox: ( 0,68 0,128 0,1 ) Origin: [-32.0682, -75.5623, -43.6315] ImageGeometry: 1 Spacing: [1, 1, 0.999999] ScaleFactorMMPerUnitX: 1 ScaleFactorMMPerUnitY: 1 Normal: [0.0390266, 0.137399, 0.989746]
Also, some nrrd properties are not copied from the original to the cropped image.
Original image:
DICOM.0008.0018 1.3.12.2.1107.5.2.38.51016.2016102715271836593291427 DICOM.0008.0020 20161027 DICOM.0008.0021 20161027 DICOM.0008.0022 20161027 DICOM.0008.0030 144409.618000 DICOM.0008.0031 152718.399000 DICOM.0008.0032 152056.265000 DICOM.0008.0050 DICOM.0008.0060 MR DICOM.0008.0070 SIEMENS DICOM.0008.0080 DKFZ DICOM.0008.0090 DICOM.0008.1010 MRC51016 DICOM.0008.1030 E0202^Mann DICOM.0008.103E 3D_homdyn_20conc_54sl_tot DICOM.0008.1050 DICOM.0008.1090 Biograph_mMR DICOM.0010.0010 Phantom^HomDynCalypso DICOM.0010.0020 513/04 DICOM.0010.0030 19861021 DICOM.0010.0040 O DICOM.0010.1030 80 DICOM.0018.0020 SE DICOM.0018.0021 SP DICOM.0018.0080 3000 DICOM.0018.0081 22.5 DICOM.0018.0087 3 DICOM.0018.1030 3D_homdyn_20conc_54sl_tot DICOM.0018.1310 0\128\128\0 DICOM.0018.5100 HFS DICOM.0020.000D 1.3.12.2.1107.5.2.38.51016.30000016102706422806700000003 DICOM.0020.000E 1.3.12.2.1107.5.2.38.51016.2016102715271837582891428.0.0.0 DICOM.0020.0010 2 DICOM.0020.0011 5 DICOM.0020.0013 1 DICOM.0020.1041 -54.817855166639 DICOM.0028.0004 MONOCHROME2 DICOM.0028.0010 128 DICOM.0028.0011 128 DICOM.0028.0030 1\1 DICOM.0028.1050 1433 DICOM.0028.1051 2796 DICOM.0028.1055 Algo1 ITK.InputFilterName NrrdImageIO NRRD.kinds[0] domain NRRD.kinds[1] domain NRRD.kinds[2] domain NRRD.kinds[3] domain org.mitk.timegeometry.timepoints 0 22 45 67 89 112 134 157 180 202 227 250 272 295 317 339 362 384 407 430 452 475 497 519 542 564 587 610 632 655 677 700 720 org.mitk.timegeometry.type ArbitraryTimeGeometry
Cropped image:
ITK.InputFilterName NrrdImageIO NRRD.kinds[0] domain NRRD.kinds[1] domain NRRD.kinds[2] domain NRRD.kinds[3] domain