[Insight-users] ITK 4.1 ImageIOFactory Could not create IO Object

Luis Ibanez luis.ibanez at kitware.com
Wed May 23 19:40:11 EDT 2012


Hi Sebastian,

You are using a plain filename (instead of a full path)
to point to your image:

reader->SetFileName("input.png");


The factories are telling you that the file

                  "input.png"

is not in the same directory that the executable
that you build with Visual Studio.


You may want to try one of these tree options:


1) Use a full path to point to your image,
     something like:

               C:\MyImages\input.png

or

2) Copy the image to where the executable is

or

3) Copy the executable to where the image is
    and run the executable from that directory



Option (1) is probably the best way to go.



Ideally your code should have been:


A) If using a command line approach

reader->SetFileName( argv[1] );

or,

B) If using a GUI to get the filename from the user:

      const char * filename = GetMeAFileNameFromGUI();

reader->SetFileName( filename );



   Hope this helps,


        Luis


-----------------------------------------
On Tue, May 22, 2012 at 4:35 AM, Sebastian Losch
<seb.losch at googlemail.com>wrote:

> Hi!
>
> I am having problems getting the ImageFileReader and ImageFileWriter to
> work. I just want to read a PNG File, apply a filter and write it back to
> the harddrive. I found out that there is a problem in 4.1 with the
> ImageIOFactory registration, so i register the PNGFactory manually. The
> .png file is in the same folder as the executable. Here is my Code:
>
> #include "itkImage.h"
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> #include "itkCannyEdgeDetectionImageFilter.h"
> #include "itkObjectFactoryBase.h"
> #include "itkPNGImageIOFactory.h"
>
> int main(int argc, char *argv[])
> {
> itk::ObjectFactoryBase::RegisterFactory(itk::PNGImageIOFactory::New());
>
>
> double variance = 2.0;
> double upperThreshold = 0.0;
>  double lowerThreshold = 0.0;
>
> typedef itk::Image<double, 2>  DoubleImageType;
>
> typedef itk::ImageFileReader<DoubleImageType> ReaderType;
> ReaderType::Pointer reader = ReaderType::New();
>  reader->SetFileName("input.png");
>
> typedef itk::CannyEdgeDetectionImageFilter <DoubleImageType,
> DoubleImageType>
>  CannyEdgeDetectionImageFilterType;
>
> CannyEdgeDetectionImageFilterType::Pointer cannyFilter =
> CannyEdgeDetectionImageFilterType::New();
>  cannyFilter->SetInput(reader->GetOutput());
> cannyFilter->SetVariance( variance );
>  cannyFilter->SetUpperThreshold( upperThreshold );
> cannyFilter->SetLowerThreshold( lowerThreshold );
>
> typedef itk::ImageFileWriter<DoubleImageType> WriterType;
> WriterType::Pointer writer = WriterType::New();
>
> writer->SetFileName("test.png");
> writer->SetInput(cannyFilter->GetOutput());
>
> try {
> writer->Update();
> } catch (itk::ExceptionObject &e) {
>  std::cerr << e << std::endl;
> }
>
> std::cout << "ENDE" << std::endl;
> }
>
> and this is the error:
>
> itk::ImageFileReaderException (0059E4A8)
> Location: "void __thiscall itk::ImageFileReader<class
> itk::Image<double,2>,class itk::DefaultConvertPixelTraits<double>
> >::GenerateOutputInformation(void)"
> File: c:\libs\itk\include\itk-4.1\itkimagefilereader.hxx
> Line: 143
> Description:  Could not create IO object for file input.png
>   Tried to create one of the following:
>     PNGImageIO
>   You probably failed to set a file suffix, or
>     set the suffix to an unsupported type.
>
>
> What am i doing wrong?
>
> Thanks in advance, Sebastian
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20120523/99de9413/attachment.htm>


More information about the Insight-users mailing list