[Insight-users] ERROR: PNG Writer can only write 2-dimensional images

Seniha Esen Yuksel eseny99 at yahoo.com
Tue Aug 30 19:27:00 EDT 2005


Hi all,
I had asked this question before unfortunately, and now I am extending it with minor changes, but the problem is still the same. Please give me some clues, ideas, just anything that comes to your mind... 
 
What does it mean
 
Description: itk::ERROR: PNGImageIO(026955F0): PNG Writer can only write 2-dimen
sional images
 
And yes I am asking for a 2D image as well ....??
 
Here is the question: I am trying to use Qt+ITK to test some functions, so I want to define a public filter in Qt's main function which I will use as a buffer to hold my images, but I am getting an exception error (as above). I don't understand if my declerations are wrong, or if only the image writing stage is wrong or else...
 
The output of my code is:
 
This program resizes the input file with the following parameters
x starting value: 300
y starting value: 200
x extension     : 400
y extension     : 400
===========================
images are cropped
Image (02685C30)
  RTTI typeinfo:   class itk::Image<unsigned char,2>
  Reference Count: 1
  Modified Time: 231
  Debug: Off
  Observers:
    none
  Source: (02685D20)
  Source output index: 0
  Release Data: Off
  Data Released: False
  Global Release Data: Off
  PipelineMTime: 218
  UpdateMTime: 232
  LargestPossibleRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [0, 0]
  BufferedRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [0, 0]
  RequestedRegion:
    Dimension: 2
    Index: [0, 0]
    Size: [0, 0]
  Spacing: [1, 1]
  Origin: [300, 200]
  PixelContainer:
    ImportImageContainer (02684BE0)
      RTTI typeinfo:   class itk::ImportImageContainer<unsigned long,unsigned ch
ar>
      Reference Count: 1
      Modified Time: 230
      Debug: Off
      Observers:
        none
      Pointer: 02684C10
      Container manages memory: true
      Size: 0
      Capacity: 0
Exception caught:
itk::ExceptionObject (0109E460)
Location: "Unknown"
File: D:\Esen\C++ STUFF\C++ LIBRARIES\ITK\InsightToolkit-2.0.0\Code\IO\itkPNGIma
geIO.cxx
Line: 395
Description: itk::ERROR: PNGImageIO(026857F0): PNG Writer can only write 2-dimen
sional images

 
 
I am copying parts of the code below from the header file and the c++ file. 
 
//------------------------------------------------------------------------------

//part of the code from my .h file:
//------------------------------------------------------------------------------
 

public:
 
// ........
 
//===================
//My ITK Object Pointers
//===================
    
  typedef int integer;
  typedef unsigned short      PixelType;
  typedef  unsigned char  InputPixelType;
  typedef  unsigned char  OutputPixelType;
  typedef itk::Image< InputPixelType,  2 >   InputImageType;
  typedef itk::Image< OutputPixelType, 2 >   OutputImageType;
  typedef itk::RegionOfInterestImageFilter<InputImageType, OutputImageType >  FilterType;
  typedef itk::ImageFileWriter< OutputImageType> WriterTypeGL;
  
  FilterType::Pointer filter ;
  WriterTypeGL::Pointer writergl;
 
  typedef InputImageType::RegionType RegionType;
 

  // ........
 
 
//------------------------------------------------------------------------------
//-------------------- part of my c++ code --------------------------
 
int FrontDialog::CropImage(){
 
//...........................
 
writerMoving->SetInput( cropMoving->GetOutput() );
 
     try {
         writerMoving->Update();
         }     catch (itk::ExceptionObject &err)         {
         std::cout<< "Exception caught in writing the moving image:" << std::endl;
         std::cout<< err <<std::endl;
        
         return -1;
         }
  
 cout << "images are cropped \n" << endl;
 
//here I definitely know that cropMoving->GetOutput()  gives correct results
//because I am able to save it as an image. However, I also want to save it in a
//public variable to use over and over.
 
//here comes the part which fails:
 
 RegionType regionGL;
 regionGL.SetSize(Width, Height);
 regionGL.SetIndex(0,0);

 filter = FilterType::New();
 filter->SetRegionOfInterest(regionGL);
 filter->SetInput( cropMoving->GetOutput());
 
 try {
          filter->Update();
         }     catch (itk::ExceptionObject &err)         {
         std::cout<< "Exception caught:" << std::endl;
         std::cout<< err <<std::endl;
         return -1;
         }
 
  filter->GetOutput()->Print( std::cout );
 
 writergl = WriterTypeGL::New();
 writergl->SetFileName( "test.png" );
 writergl->SetInput(filter->GetOutput());
  try {
         writergl->Update();
         }     catch (itk::ExceptionObject &err)         {
         std::cout<< "Exception caught:" << std::endl;
         std::cout<< err <<std::endl;
        
         return -1;
         }
 
return 0;
}
 
 
//-------------------------------------------------------------------
 
If I couldn't express my problem clearly, I am very sorry. I would be glad to send the whole project though... I will really appreciate it a lot if anyone could help me...
Thanks a lot !
Seniha
 
PS: I have an idea that even if I got the previous code working, it will not do the thing I want, or will it? What should I do?
 
 



		
---------------------------------
Yahoo! Mail for Mobile
 Take Yahoo! Mail with you! Check email on your mobile phone.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20050830/7714d377/attachment.htm


More information about the Insight-users mailing list