28 #include <itkMersenneTwisterRandomVariateGenerator.h> 34 #include <vtkImageData.h> 45 bool matrixIsEqual =
true;
46 std::stringstream sstream;
52 ImageType::Pointer itkImage = ImageType::New();
53 ImageType::RegionType myRegion;
54 ImageType::SizeType mySize;
55 ImageType::IndexType myIndex;
56 ImageType::SpacingType mySpacing;
63 myRegion.SetSize(mySize);
64 myRegion.SetIndex(myIndex);
65 itkImage->SetSpacing(mySpacing);
66 itkImage->SetRegions(myRegion);
68 itkImage->FillBuffer(50);
83 mitkImage2D->GetGeometry()->ExecuteOperation(&op);
87 Original_col0.SetVnlVector(
88 mitkImage2D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(0));
89 Original_col1.SetVnlVector(
90 mitkImage2D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(1));
91 Original_col2.SetVnlVector(
92 mitkImage2D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(2));
93 MITK_INFO <<
"Rotated Matrix: " << Original_col0 <<
" " << Original_col1 <<
" " << Original_col2;
95 mitk::Point3D Original_Origin = mitkImage2D->GetGeometry()->GetOrigin();
96 mitk::Vector3D Original_Spacing = mitkImage2D->GetGeometry()->GetSpacing();
105 <<
"/rotatedImage2D.nrrd";
116 mitk::Vector3D Loaded2D_Spacing = imageLoaded2D->GetGeometry()->GetSpacing();
118 error = std::fabs(Loaded2D_Spacing[0] - Original_Spacing[0]) + std::fabs(Loaded2D_Spacing[1] - Original_Spacing[1]) +
119 std::fabs(Loaded2D_Spacing[2] - 1);
124 mitk::Point3D Loaded2D_Origin = imageLoaded2D->GetGeometry()->GetOrigin();
126 error = std::fabs(Loaded2D_Origin[0] - Original_Origin[0]) + std::fabs(Loaded2D_Origin[1] - Original_Origin[1]) +
127 std::fabs(Loaded2D_Origin[2] - 0);
133 Loaded2D_col0.SetVnlVector(
134 imageLoaded2D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(0));
135 Loaded2D_col1.SetVnlVector(
136 imageLoaded2D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(1));
137 Loaded2D_col2.SetVnlVector(
138 imageLoaded2D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(2));
140 if ((std::fabs(1 - Loaded2D_col0[0]) > eps) || (std::fabs(0 - Loaded2D_col0[1]) >
eps) ||
141 (std::fabs(0 - Loaded2D_col0[2]) >
eps) || (std::fabs(0 - Loaded2D_col1[0]) >
eps) ||
142 (std::fabs(1 - Loaded2D_col1[1]) >
eps) || (std::fabs(0 - Loaded2D_col1[2]) >
eps) ||
143 (std::fabs(0 - Loaded2D_col2[0]) >
eps) || (std::fabs(0 - Loaded2D_col2[1]) >
eps) ||
144 (std::fabs(1 - Loaded2D_col2[2]) >
eps))
146 matrixIsEqual =
false;
149 matrixIsEqual =
true;
156 convertFilter->SetInput(mitkImage2D);
157 convertFilter->Update();
163 mitk::Vector3D Converted_Spacing = mitkImage3D->GetGeometry()->GetSpacing();
165 error = std::fabs(Converted_Spacing[0] - Original_Spacing[0]) +
166 std::fabs(Converted_Spacing[1] - Original_Spacing[1]) + std::fabs(Converted_Spacing[2] - Original_Spacing[2]);
170 mitk::Point3D Converted_Origin = mitkImage3D->GetGeometry()->GetOrigin();
172 error = std::fabs(Converted_Origin[0] - Original_Origin[0]) + std::fabs(Converted_Origin[1] - Original_Origin[1]) +
173 std::fabs(Converted_Origin[2] - Original_Origin[2]);
175 MITK_INFO << Converted_Origin <<
" and " << Original_Origin;
179 Converted_col0.SetVnlVector(
180 mitkImage3D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(0));
181 Converted_col1.SetVnlVector(
182 mitkImage3D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(1));
183 Converted_col2.SetVnlVector(
184 mitkImage3D->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(2));
186 if ((std::fabs(Original_col0[0] - Converted_col0[0]) > eps) ||
187 (std::fabs(Original_col0[1] - Converted_col0[1]) >
eps) ||
188 (std::fabs(Original_col0[2] - Converted_col0[2]) >
eps) ||
189 (std::fabs(Original_col1[0] - Converted_col1[0]) >
eps) ||
190 (std::fabs(Original_col1[1] - Converted_col1[1]) >
eps) ||
191 (std::fabs(Original_col1[2] - Converted_col1[2]) >
eps) ||
192 (std::fabs(Original_col2[0] - Converted_col2[0]) >
eps) ||
193 (std::fabs(Original_col2[1] - Converted_col2[1]) >
eps) ||
194 (std::fabs(Original_col2[2] - Converted_col2[2]) >
eps))
196 MITK_INFO <<
"Oh No! Original Image Matrix and Converted Image Matrix are different!";
197 MITK_INFO <<
"original Image:" << Original_col0 <<
" " << Original_col1 <<
" " << Original_col2;
198 MITK_INFO <<
"converted Image:" << Converted_col0 <<
" " << Converted_col1 <<
" " << Converted_col2;
199 matrixIsEqual =
false;
202 matrixIsEqual =
true;
209 std::stringstream sstream2;
210 sstream2 << MITK_TEST_OUTPUT_DIR <<
"" 211 <<
"/rotatedImage.nrrd";
222 mitk::Vector3D Loaded_Spacing = imageLoaded->GetGeometry()->GetSpacing();
223 error = std::fabs(Loaded_Spacing[0] - Original_Spacing[0]) + std::fabs(Loaded_Spacing[1] - Original_Spacing[1]) +
224 std::fabs(Loaded_Spacing[2] - Original_Spacing[2]);
228 mitk::Point3D Loaded_Origin = imageLoaded->GetGeometry()->GetOrigin();
229 error = std::fabs(Loaded_Origin[0] - Original_Origin[0]) + std::fabs(Loaded_Origin[1] - Original_Origin[1]) +
230 std::fabs(Loaded_Origin[2] - Original_Origin[2]);
234 Loaded_col0.SetVnlVector(
235 imageLoaded->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(0));
236 Loaded_col1.SetVnlVector(
237 imageLoaded->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(1));
238 Loaded_col2.SetVnlVector(
239 imageLoaded->GetGeometry()->GetIndexToWorldTransform()->GetMatrix().GetVnlMatrix().get_column(2));
241 if ((std::fabs(Original_col0[0] - Loaded_col0[0]) > eps) || (std::fabs(Original_col0[1] - Loaded_col0[1]) >
eps) ||
242 (std::fabs(Original_col0[2] - Loaded_col0[2]) >
eps) || (std::fabs(Original_col1[0] - Loaded_col1[0]) >
eps) ||
243 (std::fabs(Original_col1[1] - Loaded_col1[1]) >
eps) || (std::fabs(Original_col1[2] - Loaded_col1[2]) >
eps) ||
244 (std::fabs(Original_col2[0] - Loaded_col2[0]) >
eps) || (std::fabs(Original_col2[1] - Loaded_col2[1]) >
eps) ||
245 (std::fabs(Original_col2[2] - Loaded_col2[2]) >
eps))
247 MITK_INFO <<
"Oh No! Original Image Matrix and Converted Image Matrix are different!";
248 MITK_INFO <<
"original Image:" << Original_col0 <<
" " << Original_col1 <<
" " << Original_col2;
249 MITK_INFO <<
"converted Image:" << Loaded_col0 <<
" " << Loaded_col1 <<
" " << Loaded_col2;
250 matrixIsEqual =
false;
253 matrixIsEqual =
true;
itk::Image< unsigned char, 3 > ImageType
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG)
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
Constants for most interaction classes, due to the generic StateMachines.
#define MITK_TEST_OUTPUT_DIR
int mitkImageDimensionConverterTest(int, char *[])
void CastToMitkImage(const itk::SmartPointer< ItkOutputImageType > &itkimage, itk::SmartPointer< mitk::Image > &mitkoutputimage)
Cast an itk::Image (with a specific type) to an mitk::Image.
static void Save(const mitk::BaseData *data, const std::string &path, bool setPathProperty=false)
Save a mitk::BaseData instance.
MITKCORE_EXPORT const ScalarType eps
Operation, that holds everything necessary for an rotation operation on mitk::BaseData.