⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itkreadwritespatialobjecttest.cxx

📁 InsightToolkit-1.4.0(有大量的优化算法程序)
💻 CXX
📖 第 1 页 / 共 2 页
字号:
    {
      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 + -