X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvImageReader.cxx;h=e3e01a3b72076634293edfb0fe473a701116be83;hb=6789a2e30f7c951de93ebd0c0596e7168ec6e061;hp=5c6eba3ef40d7ffb3e8da0b5dc3b2a2ae54a2709;hpb=347b2a16810313cabc54dce603aee5372284682b;p=clitk.git diff --git a/vv/vvImageReader.cxx b/vv/vvImageReader.cxx index 5c6eba3..e3e01a3 100644 --- a/vv/vvImageReader.cxx +++ b/vv/vvImageReader.cxx @@ -1,7 +1,7 @@ /*========================================================================= Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Authors belong to: + 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 @@ -53,8 +53,7 @@ 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 { + } else { reader->SetFileName(mInputFilenames[0]); reader->ReadImageInformation(); if (mInputFilenames.size() > 1) @@ -67,17 +66,17 @@ void vvImageReader::Update(LoadedImageType type) //------------------------------------------------------------------------------ -void vvImageReader::Update(int dim,std::string inputPixelType, LoadedImageType 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()) - { - qApp->processEvents(); - this->wait(50); - } + while (this->isRunning()) { + qApp->processEvents(); + this->wait(50); + } } //------------------------------------------------------------------------------ @@ -112,7 +111,8 @@ void vvImageReader::SetInputFilename(const std::string & filename) //------------------------------------------------------------------------------ -void vvImageReader::SetInputFilenames(const std::vector & filenames) { +void vvImageReader::SetInputFilenames(const std::vector & filenames) +{ mInputFilenames = filenames; } //------------------------------------------------------------------------------ @@ -122,35 +122,34 @@ void vvImageReader::SetInputFilenames(const std::vector & filenames //Read transformation in NKI format (Xdr, transposed, cm) void vvImageReader::ReadNkiImageTransform() { - bool bRead=true; - typedef itk::ImageFileReader< itk::Image< double, 2 > > MatrixReaderType; - MatrixReaderType::Pointer readerTransfo = MatrixReaderType::New(); - readerTransfo->SetFileName(mInputFilenames[0]+".MACHINEORIENTATION"); - try - { readerTransfo->Update(); - } - catch( itk::ExceptionObject & err ) - { bRead=false; - } - - if (bRead) - { double mat[16]; - - //Transpose matrix (NKI format) - for(int j=0; j<4; j++) - for(int i=0; i<4; i++) - mat[4*j+i]=readerTransfo->GetOutput()->GetBufferPointer()[4*i+j]; - - //From cm to mm - for(int i=0; i<3; i++) - mat[4*i+3]*=10; - - //Set Transformation - vtkSmartPointer pt = vtkSmartPointer::New(); - pt->SetMatrix( mat ); - pt->Inverse(); - mImage->SetTransform( pt ); - } + bool bRead=true; + typedef itk::ImageFileReader< itk::Image< double, 2 > > MatrixReaderType; + MatrixReaderType::Pointer readerTransfo = MatrixReaderType::New(); + readerTransfo->SetFileName(mInputFilenames[0]+".MACHINEORIENTATION"); + try { + readerTransfo->Update(); + } catch( itk::ExceptionObject & err ) { + bRead=false; + } + + if (bRead) { + double mat[16]; + + //Transpose matrix (NKI format) + for(int j=0; j<4; j++) + for(int i=0; i<4; i++) + mat[4*j+i]=readerTransfo->GetOutput()->GetBufferPointer()[4*i+j]; + + //From cm to mm + for(int i=0; i<3; i++) + mat[4*i+3]*=10; + + //Set Transformation + vtkSmartPointer pt = vtkSmartPointer::New(); + pt->SetMatrix( mat ); + pt->Inverse(); + mImage->SetTransform( pt ); + } } //------------------------------------------------------------------------------ #endif