1 #ifndef vvImageReader_CXX
2 #define vvImageReader_CXX
3 #include <QApplication>
4 #include <itkImageFileReader.h>
5 #include "vvImageReader.h"
6 #include "vvImageReader.txx"
9 //====================================================================
10 vvImageReader::vvImageReader()
13 mInputFilenames.resize(0);
15 mType = UNDEFINEDIMAGETYPE;
18 vvImageReader::~vvImageReader() { }
20 void vvImageReader::Update()
25 void vvImageReader::Update(LoadedImageType type)
27 itk::ImageIOBase::Pointer reader = itk::ImageIOFactory::CreateImageIO(mInputFilenames[0].c_str(), itk::ImageIOFactory::ReadMode);
29 mLastError="Unable to read file.";
32 reader->SetFileName(mInputFilenames[0]);
33 reader->ReadImageInformation();
34 if (mInputFilenames.size() > 1)
35 Update(reader->GetNumberOfDimensions()+1,reader->GetComponentTypeAsString(reader->GetComponentType()),type);
37 Update(reader->GetNumberOfDimensions(),reader->GetComponentTypeAsString(reader->GetComponentType()),type);
41 //====================================================================
42 void vvImageReader::Update(int dim,std::string inputPixelType, LoadedImageType type) {
43 //CALL_FOR_ALL_DIMS(dim,UpdateWithDim,inputPixelType);
46 mInputPixelType=inputPixelType;
47 this->start(); //Start heavy read operation in a separate thread
48 while (this->isRunning())
50 qApp->processEvents();
55 void vvImageReader::run()
60 UpdateWithDim<2>(mInputPixelType);
63 UpdateWithDim<3>(mInputPixelType);
66 UpdateWithDim<4>(mInputPixelType);
69 std::cerr << "dimension unknown in Update ! " << std::endl;
72 //====================================================================
74 //====================================================================
75 /*void vvImageReader::Extract(int dim, std::string inputPixelType, int slice) {
76 CALL_FOR_ALL_DIMS(dim, ExtractWithDim, inputPixelType, slice);
78 //====================================================================
79 void vvImageReader::SetInputFilename(const std::string & filename)
81 mInputFilenames.resize(0);
82 mInputFilenames.push_back(filename);
85 //====================================================================
86 void vvImageReader::SetInputFilenames(const std::vector<std::string> & filenames) {
87 mInputFilenames = filenames;
89 //====================================================================