138 MITK_TEST_BEGIN(
"ToFDistanceImageToPointSetFilter");
140 mitk::ToFDistanceImageToPointSetFilter::Pointer filter = mitk::ToFDistanceImageToPointSetFilter::New();
142 MITK_INFO<<
"Create test pointset";
145 unsigned int dimX = 204;
146 unsigned int dimY = 204;
147 MITK_INFO<<
"Create test image";
148 mitk::Image::Pointer image = CreateTestImageWithPointSet(1000.0f,dimX,dimY,subSet);
152 interPixelDistance[0] = 0.04564;
153 interPixelDistance[1] = 0.0451564;
162 principalPoint[0] = 103.576546;
163 principalPoint[1] = 100.1532;
165 mitk::CameraIntrinsics::Pointer cameraIntrinsics = mitk::CameraIntrinsics::New();
166 cameraIntrinsics->SetFocalLength(focalLengthX,focalLengthY);
167 cameraIntrinsics->SetPrincipalPoint(principalPoint[0],principalPoint[1]);
168 cameraIntrinsics->SetDistorsionCoeffs(k1,k2,p1,p2);
171 filter->SetCameraIntrinsics(cameraIntrinsics);
172 MITK_TEST_CONDITION_REQUIRED((focalLengthX==filter->GetCameraIntrinsics()->GetFocalLengthX()),
"Testing SetCameraIntrinsics with focalLength");
174 pp[0] = filter->GetCameraIntrinsics()->GetPrincipalPointX();
175 pp[1] = filter->GetCameraIntrinsics()->GetPrincipalPointY();
176 MITK_TEST_CONDITION_REQUIRED(
mitk::Equal(principalPoint,pp),
"Testing SetCameraIntrinsics with principalPoint()");
179 filter->SetInterPixelDistance(interPixelDistance);
181 MITK_TEST_CONDITION_REQUIRED(
mitk::Equal(ipD,interPixelDistance),
"Testing Set/GetInterPixelDistance()");
184 filter->SetReconstructionMode(
false);
185 MITK_TEST_CONDITION_REQUIRED(filter->GetReconstructionMode() ==
false,
"Testing Set/GetReconstructionMode()");
188 filter->SetInput(image);
189 MITK_TEST_CONDITION_REQUIRED((image==filter->GetInput()),
"Testing Set/GetInput()");
193 MITK_INFO<<
"Test filter without subset without using the interpixeldistance";
194 filter->SetReconstructionMode(
true);
195 mitk::PointSet::Pointer expectedResult = mitk::PointSet::New();
196 unsigned int counter = 0;
197 mitk::ImagePixelReadAccessor<float,2> imageAcces(image, image->GetSliceData(0));
198 for (
unsigned int j=0; j<dimY; j++)
200 for (
unsigned int i=0; i<dimX; i++)
205 float distance = imageAcces.GetPixelByIndex(index);
207 expectedResult->InsertPoint(counter,coordinate);
212 mitk::PointSet::Pointer result = filter->GetOutput();
213 MITK_TEST_CONDITION_REQUIRED((expectedResult->GetSize()==result->GetSize()),
"Test if point set size is equal");
217 MITK_INFO<<
"Compare filter result with ToFDistanceImageToSurfaceFilter";
218 mitk::ToFDistanceImageToSurfaceFilter::Pointer surfaceFilter = mitk::ToFDistanceImageToSurfaceFilter::New();
219 surfaceFilter->SetInput(image);
220 surfaceFilter->SetInterPixelDistance(interPixelDistance);
221 surfaceFilter->SetCameraIntrinsics(cameraIntrinsics);
224 mitk::Surface::Pointer surface = surfaceFilter->GetOutput();
229 MITK_TEST_CONDITION_REQUIRED((pointSet->GetSize()==result->GetSize()),
"Test if point set size is equal");
233 MITK_INFO<<
"Test filter without subset with using the interpixeldistance";
235 filter->SetReconstructionMode(
false);
236 expectedResult = mitk::PointSet::New();
238 for (
unsigned int j=0; j<dimY; j++)
240 for (
unsigned int i=0; i<dimX; i++)
245 float distance = imageAcces.GetPixelByIndex(index);
247 expectedResult->InsertPoint(counter,coordinate);
252 result = filter->GetOutput();
253 MITK_TEST_CONDITION_REQUIRED((expectedResult->GetSize()==result->GetSize()),
"Test if point set size is equal");
257 MITK_INFO<<
"Compare filter result with ToFDistanceImageToSurfaceFilter";
258 surfaceFilter = mitk::ToFDistanceImageToSurfaceFilter::New();
259 surfaceFilter->SetInput(image);
260 surfaceFilter->SetInterPixelDistance(interPixelDistance);
261 surfaceFilter->SetCameraIntrinsics(cameraIntrinsics);
264 surface = surfaceFilter->GetOutput();
269 MITK_TEST_CONDITION_REQUIRED((pointSet->GetSize()==result->GetSize()),
"Test if point set size is equal");
274 MITK_INFO<<
"Test filter with subset without using the interpixeldistance";
275 filter = mitk::ToFDistanceImageToPointSetFilter::New();
276 filter->SetInput(image);
277 filter->SetInterPixelDistance(interPixelDistance);
278 filter->SetCameraIntrinsics(cameraIntrinsics);
279 filter->SetReconstructionMode(
true);
280 expectedResult = mitk::PointSet::New();
282 for(
int i=0; i<subSet->GetSize(); i++)
284 mitk::Point3D point = subSet->GetPoint(i);
288 float distance = imageAcces.GetPixelByIndex(index);
290 distance,focalLengthX,focalLengthY,principalPoint[0],principalPoint[1]);
291 expectedResult->InsertPoint(counter,coordinate);
294 filter->SetSubset(subSet);
297 result = filter->GetOutput();
298 MITK_TEST_CONDITION_REQUIRED((expectedResult->GetSize()==result->GetSize()),
"Test if point set size is equal");
303 MITK_INFO<<
"Test filter with subset with using the interpixeldistance";
304 filter = mitk::ToFDistanceImageToPointSetFilter::New();
305 filter->SetInput(image);
306 filter->SetInterPixelDistance(interPixelDistance);
307 filter->SetCameraIntrinsics(cameraIntrinsics);
308 filter->SetReconstructionMode(
false);
309 expectedResult = mitk::PointSet::New();
311 for(
int i=0; i<subSet->GetSize(); i++)
313 mitk::Point3D point = subSet->GetPoint(i);
317 float distance = imageAcces.GetPixelByIndex(index);
319 distance,focalLength,interPixelDistance,principalPoint);
320 expectedResult->InsertPoint(counter,coordinate);
323 filter->SetSubset(subSet);
326 result = filter->GetOutput();
327 MITK_TEST_CONDITION_REQUIRED((expectedResult->GetSize()==result->GetSize()),
"Test if point set size is equal");
332 filter = mitk::ToFDistanceImageToPointSetFilter::New();
335 filter->SetSubset(vecSubset);
339 MITK_TEST_CONDITION_REQUIRED(
false,
"Caught an exception while setting point subset!");