Generic image reader which uses all the specific concrete image reader of the lib (tif, jpg, dicom, ...). More...
#include <creaImageIOImageReader.h>
Public Member Functions | |
ImageReader () | |
~ImageReader () | |
void | PushBackExtensions (std::vector< std::string > &) |
Pushes back all kwown extensions (without dot) in the vector given. | |
bool | CanRead (const std::string &filename) |
Returns true iff the file is readable. | |
vtkImageData * | ReadImage (const std::string &filename) |
void | ReadAttributes (const std::string &filename, tree::AttributeMapType &attr) |
void | getAttributes (const std::string filename, std::map< std::string, std::string > &infos, std::vector< std::string > i_attr) |
Another function to read attributes for a file. | |
const std::string & | GetName () const |
Get the reader's name. | |
Protected Member Functions | |
void | Register (boost::shared_ptr< AbstractImageReader >) |
Register a reader. | |
bool | ShallNotRead (const std::string &filename) |
void | UnRegister (const std::string i_val) |
void | SetName (const std::string &s) |
Set the reader's name. | |
Protected Attributes | |
std::vector< boost::shared_ptr < AbstractImageReader > > | mReader |
vtkImageData * | mUnreadableImage |
std::string | mLastFilename |
boost::shared_ptr < AbstractImageReader > | mLastReader |
std::vector< std::string > | mUnReader |
Generic image reader which uses all the specific concrete image reader of the lib (tif, jpg, dicom, ...).
Definition at line 15 of file creaImageIOImageReader.h.
creaImageIO::ImageReader::ImageReader | ( | ) |
Definition at line 27 of file creaImageIOImageReader.cpp.
References mUnreadableImage, Register(), and UnRegister().
: mUnreadableImage(0), mLastFilename("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") { // std::cout << "#### ImageReader::ImageReader()"<<std::endl; if (mUnreadableImage!=0) return; Register( boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkPNGReader::New(), "PNG", ".png"))); Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkTIFFReader::New(), "JPEG", ".jpeg"))); Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkJPEGReader::New()))); Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkBMPReader::New()))); Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkSLCReader::New()))); Register(boost::shared_ptr<AbstractImageReader>(new VtkImageReader(vtkMetaImageReader::New(),"MHD",".mhd"))); // Register(new VtkImageReader(vtkGESignalReader::New())); Register(boost::shared_ptr<AbstractImageReader>(new DicomImageReader)); Register(boost::shared_ptr<AbstractImageReader>(new UltrasonixImageReader)); UnRegister(".txt"); mUnreadableImage = vtkImageData::New(); int dim[3]; dim[0] = dim[1] = 128; dim[2] = 1; mUnreadableImage->SetDimensions ( dim ); mUnreadableImage->SetScalarTypeToUnsignedChar(); mUnreadableImage->AllocateScalars(); for (int i=0;i<dim[0];i++) for (int j=0;j<dim[1];j++) mUnreadableImage->SetScalarComponentFromFloat(i,j,0,0,0); for (int i=0;i<dim[0];i++) { mUnreadableImage->SetScalarComponentFromFloat(i,i,0,0,255); mUnreadableImage->SetScalarComponentFromFloat(dim[0]-1-i,i,0,0,255); } }
creaImageIO::ImageReader::~ImageReader | ( | ) |
Definition at line 66 of file creaImageIOImageReader.cpp.
References mUnreadableImage.
{ // for (i=mReader.begin(); i!=mReader.end(); i++) // { //delete (*i); // } // mReader.clear(); if (mUnreadableImage!=0) { mUnreadableImage->Delete(); mUnreadableImage = 0; } }
bool creaImageIO::ImageReader::CanRead | ( | const std::string & | filename | ) | [virtual] |
Returns true iff the file is readable.
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 119 of file creaImageIOImageReader.cpp.
References mLastFilename, mLastReader, mReader, and ShallNotRead().
Referenced by getAttributes(), creaImageIO::TreeHandlerImageAdder::IsHandledFile(), creaImageIO::SimpleView::readFile(), and ReadImage().
{ bool ok = false; if( !ShallNotRead(filename)) { return ok; } if(filename != "") { std::vector<boost::shared_ptr<AbstractImageReader> >::iterator i; for (i=mReader.begin(); i!=mReader.end(); i++) { ok = (*i)->CanRead(filename); if (ok) { mLastFilename = filename; mLastReader = *i; break; } } } return ok; }
void creaImageIO::ImageReader::getAttributes | ( | const std::string | filename, | |
std::map< std::string, std::string > & | infos, | |||
std::vector< std::string > | i_attr | |||
) | [virtual] |
Another function to read attributes for a file.
Exclude specific readers TO DO...
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 168 of file creaImageIOImageReader.cpp.
References CanRead(), mLastFilename, and mLastReader.
Referenced by creaImageIO::MultiThreadImageReader::getAttributes().
{ if (mLastFilename!=filename) { if (!CanRead(filename)) { return; } } mLastReader->getAttributes(filename, infos, i_attr); }
const std::string& creaImageIO::AbstractImageReader::GetName | ( | ) | const [inline, inherited] |
Get the reader's name.
Definition at line 16 of file creaImageIOAbstractImageReader.h.
Referenced by creaImageIO::VtkImageReader::VtkImageReader().
{
void creaImageIO::ImageReader::PushBackExtensions | ( | std::vector< std::string > & | v | ) | [virtual] |
Pushes back all kwown extensions (without dot) in the vector given.
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 198 of file creaImageIOImageReader.cpp.
References mReader.
void creaImageIO::ImageReader::ReadAttributes | ( | const std::string & | filename, | |
tree::AttributeMapType & | attr | |||
) | [virtual] |
Reads the attributes of the image. Requested attributes names are provided as keys in a string to string map On return, the values of the map are the values of the attributes (empty string if not available).
Reimplemented from creaImageIO::AbstractImageReader.
Referenced by creaImageIO::TreeHandlerImageAdder::AddFile(), creaImageIO::Synchronizer::AttributesMatch(), and creaImageIO::TreeHandlerImageAdder::CheckAttributes().
vtkImageData * creaImageIO::ImageReader::ReadImage | ( | const std::string & | filename | ) | [virtual] |
Reads and returns the image data. Returns an "Unreadable image" picture if fails
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 147 of file creaImageIOImageReader.cpp.
References CanRead(), mLastFilename, mLastReader, and mUnreadableImage.
Referenced by creaImageIO::MultiThreadImageReader::GetImage(), creaImageIO::ThreadedImageReader::Read(), creaImageIO::SimpleView::readFile(), and creaImageIO::MultiThreadImageReader::Request().
{ if (mLastFilename!=filename) { if (!CanRead(filename)) { vtkImageData* im = vtkImageData::New(); im->ShallowCopy(mUnreadableImage); return im; } } vtkImageData* i = mLastReader->ReadImage(mLastFilename); if (i==0) { i = vtkImageData::New(); i->ShallowCopy(mUnreadableImage); } return i; }
void creaImageIO::ImageReader::Register | ( | boost::shared_ptr< AbstractImageReader > | r | ) | [protected] |
Register a reader.
Definition at line 83 of file creaImageIOImageReader.cpp.
References mReader.
Referenced by ImageReader().
{ mReader.push_back(r); }
void creaImageIO::AbstractImageReader::SetName | ( | const std::string & | s | ) | [inline, protected, inherited] |
Set the reader's name.
Definition at line 36 of file creaImageIOAbstractImageReader.h.
Referenced by creaImageIO::DicomImageReader::DicomImageReader(), creaImageIO::UltrasonixImageReader::UltrasonixImageReader(), and creaImageIO::VtkImageReader::VtkImageReader().
bool creaImageIO::ImageReader::ShallNotRead | ( | const std::string & | filename | ) | [protected] |
Definition at line 98 of file creaImageIOImageReader.cpp.
References mUnReader.
Referenced by CanRead().
{ bool ok = true; if(filename != "") { std::vector<std::string >::iterator i ; for (i=mUnReader.begin(); i!=mUnReader.end(); i++) { if ( (*i).c_str() == filename) { ok = false; break; } } } return ok; }
void creaImageIO::ImageReader::UnRegister | ( | const std::string | i_val | ) | [protected] |
Definition at line 89 of file creaImageIOImageReader.cpp.
References mUnReader.
Referenced by ImageReader().
{ mUnReader.push_back(i_val); }
std::string creaImageIO::ImageReader::mLastFilename [protected] |
Definition at line 54 of file creaImageIOImageReader.h.
Referenced by CanRead(), getAttributes(), and ReadImage().
boost::shared_ptr<AbstractImageReader> creaImageIO::ImageReader::mLastReader [protected] |
Definition at line 55 of file creaImageIOImageReader.h.
Referenced by CanRead(), getAttributes(), and ReadImage().
std::vector<boost::shared_ptr<AbstractImageReader> > creaImageIO::ImageReader::mReader [protected] |
Definition at line 51 of file creaImageIOImageReader.h.
Referenced by CanRead(), PushBackExtensions(), and Register().
vtkImageData* creaImageIO::ImageReader::mUnreadableImage [protected] |
Definition at line 52 of file creaImageIOImageReader.h.
Referenced by ImageReader(), ReadImage(), and ~ImageReader().
std::vector<std::string> creaImageIO::ImageReader::mUnReader [protected] |
Definition at line 61 of file creaImageIOImageReader.h.
Referenced by ShallNotRead(), and UnRegister().