X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=packages%2Fitk%2Fsrc%2FbbitkImageReader.cxx;fp=packages%2Fitk%2Fsrc%2FbbitkImageReader.cxx;h=bb7938d6b2b2d1c26230f421848b2cd01f8f468a;hb=d73a7833a28e6111e1e805efae5df3ab18a240e2;hp=0000000000000000000000000000000000000000;hpb=bc8dd166e94285b08bd9fcb31e41304a83af24ff;p=bbtk.git diff --git a/packages/itk/src/bbitkImageReader.cxx b/packages/itk/src/bbitkImageReader.cxx new file mode 100644 index 0000000..bb7938d --- /dev/null +++ b/packages/itk/src/bbitkImageReader.cxx @@ -0,0 +1,93 @@ +/*========================================================================= + + Program: bbtk + Module: $RCSfile: bbitkImageReader.cxx,v $ + Language: C++ + Date: $Date: 2008/02/05 12:03:01 $ + Version: $Revision: 1.1 $ + + Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de + l'Image). All rights reserved. See Doc/License.txt or + http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +/** + * \file + * \brief + */ +#ifdef _USE_ITK_ + +#include "bbitkImageReader.h" +#include "bbitkPackage.h" +#include "itkImageFileReader.h" + +namespace bbitk +{ + BBTK_USER_BLACK_BOX_IMPLEMENTATION(ImageReader,bbtk::UserBlackBox); + + BBTK_ADD_BLACK_BOX_TO_PACKAGE(itk,ImageReader); + + + + + void ImageReader::Read() + { + std::string filename = bbGetInputFilename(); + + itk::ImageIOBase::Pointer genericReader = + itk::ImageIOFactory::CreateImageIO(filename.c_str(), + itk::ImageIOFactory::ReadMode); + if (!genericReader) + { + bbtkError("File format unknown (while reading \"" << filename << "\")"); + } + genericReader->SetFileName(filename.c_str()); + genericReader->ReadImageInformation(); + + bbtk::TypeInfo typ = GetITKImagePtrTypeInfoFromPixelTypeInfoAndDimension(genericReader->GetComponentTypeInfo(), genericReader->GetNumberOfDimensions()); + + BBTK_TEMPLATE_ITK_IMAGE_SWITCH( typ, Read); + } + + + + /** + Template Processing + */ + template + void ImageReader::Read() + { + bbtkDebugMessageInc("Core",9,"itkImageReader<"<< + bbtk::TypeName() + <<">::Read()"< itkReaderType; + + typename itkReaderType::Pointer reader = itkReaderType::New(); + std::string filename = bbGetInputFilename(); + reader->SetFileName(filename.c_str()); + try { reader->Update(); } + catch( std::exception& e ) + { + bbtkError("could not read image \""<< filename << "\" : "<GetOutput()->Register(); + bbSetOutputOut( reader->GetOutput() ); + + bbtkDebugDecTab("Core",9); + } + + + + + + +} +// eo namespace bbtk + +#endif