📄 itkreadwritespatialobjecttest.cxx
字号:
{
unsigned int value=0;
for(j = dynamic_cast<TubeType*>(*i)->GetPoints().begin();
j != dynamic_cast<TubeType*>(*i)->GetPoints().end();
j++)
{
for(unsigned int d=0;d<3;d++)
{
if((*j).GetPosition()[d]!=value * (*i)->GetId())
{
std::cout<<" [FAILED] (Position is: " << (*j).GetPosition()[d] << " expected : "<< value * (*i)->GetId()<< " ) " <<std::endl;
return EXIT_FAILURE;
}
}
// Testing the color of the tube points
if( (*j).GetRed() != value)
{
std::cout<<" [FAILED] : Red : found " << ( *j).GetRed() << " instead of " << value <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetGreen()!=value+1)
{
std::cout<<" [FAILED] : Green : found " << ( *j).GetGreen() << " instead of " << value+1 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetBlue()!=value+2)
{
std::cout<<"[FAILED] : Blue : found " << ( *j).GetBlue() << " instead of " << value+2 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetAlpha()!=value+3)
{
std::cout<<" [FAILED] : Alpha : found " << ( *j).GetAlpha() << " instead of " << value+3 <<std::endl;
return EXIT_FAILURE;
}
value++;
}
}
}
std::cout<<" [PASSED]"<<std::endl;
/*std::cout<<"Testing Ellipse parameters:";
for(i = mySceneChildren->begin(); i != mySceneChildren->end(); i++)
{
if(!strcmp((*i)->GetTypeName(),"EllipseSpatialObject"))
{
for(unsigned int j=0;j<3;j++)
{
if (dynamic_cast<EllipseType*>(*i)->GetRadius()[j] != 9)
{
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
}
}
}
std::cout<<" [PASSED]"<<std::endl;
*/
std::cout<<"Testing Image data validity:";
for(i = mySceneChildren->begin(); i != mySceneChildren->end(); i++)
{
if(!strcmp((*i)->GetTypeName(),"ImageSpatialObject"))
{
itkImageType::Pointer image = dynamic_cast<ImageType*>(*i)->GetImage();
itk::ImageRegionIteratorWithIndex< itkImageType > it(image, image->GetLargestPossibleRegion());
for(unsigned int i = 0; !it.IsAtEnd(); i++, ++it)
{
if(it.Get() != i)
{
std::cout << "Expeted " << i << " , found " << it.Get() << std::endl;
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
}
}
}
std::cout<<" [PASSED]"<<std::endl;
std::cout<<"Testing Blob validity:";
for(i = mySceneChildren->begin(); i != mySceneChildren->end(); i++)
{
BlobType::PointListType::const_iterator j;
if(!strcmp((*i)->GetTypeName(),"BlobSpatialObject"))
{
unsigned int value = 0;
for(j = dynamic_cast<BlobType*>(*i)->GetPoints().begin();
j != dynamic_cast<BlobType*>(*i)->GetPoints().end();
j++)
{
for(unsigned int d=0;d<3;d++)
{
if((*j).GetPosition()[d]!=value)
{
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
// Testing the color of the tube points
if( (*j).GetRed() != value)
{
std::cout<<" [FAILED] : Red : found " << ( *j).GetRed() << " instead of " << value <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetGreen()!=value+1)
{
std::cout<<" [FAILED] : Green : found " << ( *j).GetGreen() << " instead of " << value+1 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetBlue()!=value+2)
{
std::cout<<" [FAILED] : Blue : found " << ( *j).GetBlue() << " instead of " << value+2 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetAlpha()!=value+3)
{
std::cout<<" [FAILED] : Alpha : found " << ( *j).GetAlpha() << " instead of " << value+3 <<std::endl;
return EXIT_FAILURE;
}
}
value++;
}
}
}
std::cout<<" [PASSED]"<<std::endl;
std::cout<<"Testing Surface validity:";
for(i = mySceneChildren->begin(); i != mySceneChildren->end(); i++)
{
SurfaceType::PointListType::const_iterator j;
if(!strcmp((*i)->GetTypeName(),"SurfaceSpatialObject"))
{
unsigned int value = 0;
for(j = dynamic_cast<SurfaceType*>(*i)->GetPoints().begin();
j != dynamic_cast<SurfaceType*>(*i)->GetPoints().end();
j++)
{
for(unsigned int d=0;d<3;d++)
{
if((*j).GetPosition()[d]!=value)
{
std::cout << (*j).GetPosition()[d] << "!=" << value << std::endl;
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
if((*j).GetNormal()[d]!= d)
{
std::cout << "Normal : " << (*j).GetNormal()[d] << std::endl;
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
// Testing the color of the tube points
if( (*j).GetRed() != value)
{
std::cout<<" [FAILED] : Red : found " << ( *j).GetRed() << " instead of " << value <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetGreen()!=value+1)
{
std::cout<<" [FAILED] : Green : found " << ( *j).GetGreen() << " instead of " << value+1 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetBlue()!=value+2)
{
std::cout<<" [FAILED] : Blue : found " << ( *j).GetBlue() << " instead of " << value+2 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetAlpha()!=value+3)
{
std::cout<<" [FAILED] : Alpha : found " << ( *j).GetAlpha() << " instead of " << value+3 <<std::endl;
return EXIT_FAILURE;
}
}
value++;
}
}
}
std::cout<<" [PASSED]"<<std::endl;
std::cout<<"Testing Line validity:";
for(i = mySceneChildren->begin(); i != mySceneChildren->end(); i++)
{
LineType::PointListType::const_iterator j;
if(!strcmp((*i)->GetTypeName(),"LineSpatialObject"))
{
unsigned int value = 0;
for(j = dynamic_cast<LineType*>(*i)->GetPoints().begin();
j != dynamic_cast<LineType*>(*i)->GetPoints().end();
j++)
{
for(unsigned int d=0;d<3;d++)
{
if((*j).GetPosition()[d]!=value)
{
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
if(((*j).GetNormal(0))[d]!= d)
{
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
if(((*j).GetNormal(1))[d]!= 2*d)
{
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
// Testing the color of the tube points
if( (*j).GetRed() != value)
{
std::cout<<" [FAILED] : Red : found " << ( *j).GetRed() << " instead of " << value <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetGreen()!=value+1)
{
std::cout<<" [FAILED] : Green : found " << ( *j).GetGreen() << " instead of " << value+1 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetBlue()!=value+2)
{
std::cout<<" [FAILED] : Blue : found " << ( *j).GetBlue() << " instead of " << value+2 <<std::endl;
return EXIT_FAILURE;
}
if((*j).GetAlpha()!=value+3)
{
std::cout<<" [FAILED] : Alpha : found " << ( *j).GetAlpha() << " instead of " << value+3 <<std::endl;
return EXIT_FAILURE;
}
}
value++;
}
}
}
std::cout<<" [PASSED]"<<std::endl;
std::cout<<"Testing Landmark validity:";
for(i = mySceneChildren->begin(); i != mySceneChildren->end(); i++)
{
LandmarkType::PointListType::const_iterator j;
if(!strcmp((*i)->GetTypeName(),"LandmarkSpatialObject"))
{
unsigned int value = 0;
for(j = dynamic_cast<LandmarkType*>(*i)->GetPoints().begin();
j != dynamic_cast<LandmarkType*>(*i)->GetPoints().end();
j++)
{
for(unsigned int d=0;d<3;d++)
{
if((*j).GetPosition()[d]!=value)
{
std::cout<<" [FAILED]"<<std::endl;
return EXIT_FAILURE;
}
}
value++;
}
}
}
delete mySceneChildren;
std::cout<<" [PASSED]"<<std::endl;
// Now testing to read/write a scene
std::cout << "Writing Scene:";
typedef itk::SceneSpatialObject<3> SceneType;
SceneType::Pointer scene2 = SceneType::New();
//scene2->AddSpatialObject(ellipse);
scene2->AddSpatialObject(surface);
WriterType::Pointer writer2 = WriterType::New();
writer2->SetInput(scene2);
writer2->SetFullFileName("Scene.meta");
writer2->Update();
std::cout<<"[PASSED]"<<std::endl;
std::cout<<"Reading Scene: ";
ReaderType::Pointer reader2 = ReaderType::New();
reader2->SetFileName("Scene.meta");
reader2->Update();
ReaderType::ScenePointer myScene2 = reader2->GetScene();
if(myScene2->GetNumberOfObjects() != 1)
{
std::cout << myScene2->GetNumberOfObjects() <<" : [FAILED]" << std::endl;
}
std::cout<<" [PASSED]"<<std::endl;
std::cout << " [TEST DONE]" << std::endl;
return EXIT_SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -