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

Sebastian Losch seb.losch at googlemail.com
Wed May 23 02:06:59 EDT 2012


Hi Bill,
this is my cmakelists.txt:

# This is the root ITK CMakeLists file.
cmake_minimum_required(VERSION 2.4)
if(COMMAND CMAKE_POLICY)
  cmake_policy(SET CMP0003 NEW)
endif(COMMAND CMAKE_POLICY)


# This project is designed to be built outside the Insight source tree.
project(itktest)

# Find ITK.
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})

add_executable(itktest main.cpp )

target_link_libraries(itktest ${ITK_LIBRARIES})

It is just the adjusted Hello World example file.



2012/5/22 Bill Lorensen <bill.lorensen at gmail.com>

> ooop[s. I see you posted your code. Please post your CMakeLists.txt file.
>
> On Tue, May 22, 2012 at 3:01 PM, Bill Lorensen <bill.lorensen at gmail.com>
> wrote:
> > No need to change the reader output type. The reader will internnaly
> > convert to whatever type the user specifies.
> >
> > Sebastien,
> >
> > Please post your complete compilable example and your CMakeLists.txt
> file.
> >
> > On Tue, May 22, 2012 at 12:11 PM, Cagatay Bilgin <bilgincc at gmail.com>
> wrote:
> >> It is your input file that you are having problems
> >> with.  PNG supports unsigned char or unsigned
> >> short but you are trying to read your input as
> >> double. You need to change this
> >>
> >> typedef itk::ImageFileReader<DoubleImageType> ReaderType;
> >> to
> >> typedef itk::ImageFileReader<IntImageType> ReaderType;
> >> and modify the rest of your code keeping the imagetypes
> >> consistent.
> >>
> >> Cheers,
> >> Cagatay
> >>
> >>
> >> On Tue, May 22, 2012 at 7:42 AM, Sebastian Losch <
> seb.losch at googlemail.com>
> >> wrote:
> >>>
> >>> hi Bill!
> >>>
> >>> it is the same as in my first posting. Sorry, i thought i made that
> clear.
> >>>
> >>> Description:  Could not create IO object for file input.png
> >>>
> >>> 2012/5/22 Bill Lorensen <bill.lorensen at gmail.com>
> >>>>
> >>>> Pleases post the complete line for
> >>>> Description:  Could not create IO object for fi
> >>>>
> >>>>
> >>>> On Tue, May 22, 2012 at 9:30 AM, Sebastian Losch
> >>>> <seb.losch at googlemail.com> wrote:
> >>>> > Hm okay, i just created a solution for visual studio using this
> >>>> > helloworld
> >>>> > cmake project as basis. The only difference is that there are more
> >>>> > Image
> >>>> > types he tried, but it is not working. I did try it with JPEG
> instead
> >>>> > of
> >>>> > PNG, i had to use a castimagefilter in order to use it with the
> canny
> >>>> > filter
> >>>> > which only support real values. No errors, but the output image is
> just
> >>>> > black.
> >>>> >
> >>>> > Some other ideas?
> >>>> >
> >>>> > This is the error:
> >>>> >
> >>>> > Description:  Could not create IO object for fi
> >>>> >   Tried to create one of the following:
> >>>> >     JPEGImageIO
> >>>> >     GDCMImageIO
> >>>> >     BMPImageIO
> >>>> >     LSMImageIO
> >>>> >     PNGImageIO
> >>>> >     TIFFImageIO
> >>>> >     VTKImageIO
> >>>> >     StimulateImageIO
> >>>> >     BioRadImageIO
> >>>> >     MetaImageIO
> >>>> >     NiftiImageIO
> >>>> >     NrrdImageIO
> >>>> >     GiplImageIO
> >>>> >     HDF5ImageIO
> >>>> >     PNGImageIO
> >>>> >     JPEGImageIO
> >>>> >   You probably failed to set a file suffix, or
> >>>> >     set the suffix to an unsupported type.
> >>>> >
> >>>> > 2012/5/22 Sebastian Losch <seb.losch at googlemail.com>
> >>>> >>
> >>>> >> Hi Brad,
> >>>> >>
> >>>> >> thanks for your response. I should have mentioned in my first post
> >>>> >> that i
> >>>> >> am using Visual Studio 2010 on a Win7 32bit machine. I've read that
> >>>> >> this
> >>>> >> problem can be solved by adding  include(${ITK_USE_FILE})  to the
> >>>> >> makefile.
> >>>> >> But what is the corresponding way to do it in visual studio?
> >>>> >>
> >>>> >> Thanks, Sebastian
> >>>> >>
> >>>> >>
> >>>> >> 2012/5/22 Bradley Lowekamp <blowekamp at mail.nih.gov>
> >>>> >>>
> >>>> >>> Most likely this is a problem with how you are using CMake for ITK
> >>>> >>> and is
> >>>> >>> not related to the code you have included here.
> >>>> >>>
> >>>> >>> There is an example of what a basic CMake project which uses ITK
> >>>> >>> should
> >>>> >>> like like  int ITK/Examples/Installation/CMakeLists.txt
> >>>> >>>
> >>>> >>>
> >>>> >>>
> >>>> >>>
> http://itk.org/gitweb?p=ITK.git;a=blob;f=Examples/Installation/CMakeLists.txt;h=5e1b9e7ae0a95430f5162e8ff435b98570c5ad6e;hb=HEAD
> >>>> >>>
> >>>> >>> Hopefully, this will get you started in the right direction to
> solve
> >>>> >>> you
> >>>> >>> problem.
> >>>> >>>
> >>>> >>> Brad
> >>>> >>>
> >>>> >>>
> >>>> >>> On May 22, 2012, at 4:35 AM, Sebastian Losch 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
> >>>> >>>
> >>>> >>>
> >>>> >>> ========================================================
> >>>> >>>
> >>>> >>> Bradley Lowekamp
> >>>> >>>
> >>>> >>> Medical Science and Computing for
> >>>> >>>
> >>>> >>> Office of High Performance Computing and Communications
> >>>> >>>
> >>>> >>> National Library of Medicine
> >>>> >>>
> >>>> >>> blowekamp at mail.nih.gov
> >>>> >>>
> >>>> >>>
> >>>> >>>
> >>>> >>>
> >>>> >>
> >>>> >
> >>>> >
> >>>> > _____________________________________
> >>>> > 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
> >>>> >
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Unpaid intern in BillsBasement at noware dot com
> >>>
> >>>
> >>>
> >>> _____________________________________
> >>> 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
> >>>
> >>
> >
> >
> >
> > --
> > Unpaid intern in BillsBasement at noware dot com
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20120523/11e8298a/attachment.htm>


More information about the Insight-users mailing list