X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvImageReader.cxx;h=7cc0e569856b160276385b1f7c81d7e9ecba03ec;hb=dfb1627eab468417ab2682a03a4a66cf6830b921;hp=7e4a4e2e76c3db36c7bd8d72189ac70df1c9c043;hpb=931a42358442f4ee4f314613c991c838d4b4e3b7;p=clitk.git diff --git a/vv/vvImageReader.cxx b/vv/vvImageReader.cxx index 7e4a4e2..7cc0e56 100644 --- a/vv/vvImageReader.cxx +++ b/vv/vvImageReader.cxx @@ -1,114 +1,121 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvImageReader.cxx,v $ - Language: C++ - Date: $Date: 2010/01/06 13:31:57 $ - Version: $Revision: 1.1 $ - Author : Pierre Seroul (pierre.seroul@gmail.com) + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr -Copyright (C) 2008 -Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr -CREATIS-LRMN http://www.creatis.insa-lyon.fr + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, version 3 of the License. + It is distributed under dual licence -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -=========================================================================*/ -#ifndef vvImageReader_CXX -#define vvImageReader_CXX + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + ======================================================================-====*/ +#ifndef VVIMAGEREADER_CXX +#define VVIMAGEREADER_CXX #include #include #include "vvImageReader.h" #include "vvImageReader.txx" - -//==================================================================== +//------------------------------------------------------------------------------ vvImageReader::vvImageReader() { - mImage = NULL; - mInputFilenames.resize(0); - mLastError = ""; - mType = UNDEFINEDIMAGETYPE; + mImage = NULL; + mInputFilenames.resize(0); + mLastError = ""; + mType = UNDEFINEDIMAGETYPE; } +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ vvImageReader::~vvImageReader() { } +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +void vvImageReader::Update() +{ + Update(mType); +} +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ void vvImageReader::Update(LoadedImageType type) { - itk::ImageIOBase::Pointer reader = itk::ImageIOFactory::CreateImageIO(mInputFilenames[0].c_str(), itk::ImageIOFactory::ReadMode); - if (!reader) { - mLastError="Unable to read file."; - } - else { - reader->SetFileName(mInputFilenames[0]); - reader->ReadImageInformation(); - if (mInputFilenames.size() > 1) - Update(reader->GetNumberOfDimensions()+1,reader->GetComponentTypeAsString(reader->GetComponentType()),type); - else - Update(reader->GetNumberOfDimensions(),reader->GetComponentTypeAsString(reader->GetComponentType()),type); - } + itk::ImageIOBase::Pointer reader = itk::ImageIOFactory::CreateImageIO(mInputFilenames[0].c_str(), itk::ImageIOFactory::ReadMode); + if (!reader) { + mLastError="Unable to read file."; + } + else { + reader->SetFileName(mInputFilenames[0]); + reader->ReadImageInformation(); + if (mInputFilenames.size() > 1) + Update(reader->GetNumberOfDimensions()+1,reader->GetComponentTypeAsString(reader->GetComponentType()),type); + else + Update(reader->GetNumberOfDimensions(),reader->GetComponentTypeAsString(reader->GetComponentType()),type); + } } +//------------------------------------------------------------------------------ -//==================================================================== + +//------------------------------------------------------------------------------ void vvImageReader::Update(int dim,std::string inputPixelType, LoadedImageType type) { - //CALL_FOR_ALL_DIMS(dim,UpdateWithDim,inputPixelType); - mType = type; - mDim = dim; - mInputPixelType=inputPixelType; - this->start(); //Start heavy read operation in a separate thread - while (this->isRunning()) + //CALL_FOR_ALL_DIMS(dim,UpdateWithDim,inputPixelType); + mType = type; + mDim = dim; + mInputPixelType=inputPixelType; + this->start(); //Start heavy read operation in a separate thread + while (this->isRunning()) { - qApp->processEvents(); - this->wait(50); + qApp->processEvents(); + this->wait(50); } } +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ void vvImageReader::run() { - switch(mDim) - { - case 2: - UpdateWithDim<2>(mInputPixelType); - break;; - case 3: - UpdateWithDim<3>(mInputPixelType); - break;; - case 4: - UpdateWithDim<4>(mInputPixelType); - break;; - default: - std::cerr << "dimension unknown in Update ! " << std::endl; - } + switch(mDim) { + case 2: + UpdateWithDim<2>(mInputPixelType); + break;; + case 3: + UpdateWithDim<3>(mInputPixelType); + break;; + case 4: + UpdateWithDim<4>(mInputPixelType); + break;; + default: + std::cerr << "dimension unknown in Update ! " << std::endl; + } } -//==================================================================== +//------------------------------------------------------------------------------ -//==================================================================== -/*void vvImageReader::Extract(int dim, std::string inputPixelType, int slice) { - CALL_FOR_ALL_DIMS(dim, ExtractWithDim, inputPixelType, slice); -}*/ -//==================================================================== + +//------------------------------------------------------------------------------ void vvImageReader::SetInputFilename(const std::string & filename) { - mInputFilenames.resize(0); - mInputFilenames.push_back(filename); + mInputFilenames.resize(0); + mInputFilenames.push_back(filename); } +//------------------------------------------------------------------------------ + -//==================================================================== +//------------------------------------------------------------------------------ void vvImageReader::SetInputFilenames(const std::vector & filenames) { - mInputFilenames = filenames; + mInputFilenames = filenames; } -//==================================================================== +//------------------------------------------------------------------------------ #endif