[Insight-users] A bug in itkAnalyzeImageIO?
Bill Lorensen
bill.lorensen at gmail.com
Thu Feb 7 14:50:30 EST 2008
Jian,
Can you please try the same program with itkNiftiImageIO instead of
itkAnalyzeImageIO? The nifti reader/writer should produce valid analyze
files. We are looking at replacing itkAnalyzeImageIO's implementation with
itkNiftiImageIO. Nifti is a file format with a substantial and active
community. If we do this, we will keep the Analyze API.
Thanks,
Bill
On Thu, Feb 7, 2008 at 2:25 PM, Jian Wu <eewujian at yahoo.com> wrote:
> Hi,
> I'm doing image format conversion from other image types to Analyze 7.5.
> The program did not give me any error message. However I doubt it may not
> handle the image header information properly. The images I generated in
> Analyze 7.5 format can be viewed using MRIcro image viewer. But when I
> tried to opened it using Matlab function analyze75read, it gave me an error
> message "Reference to non-existent field 'ImgDataType'." I studies the ITK
> source code and found out the line 1128 of itkAnalyzeImageIO.cxx states:
> switch( this->m_Hdr.dime.datatype)
> Here "this->m_Hdr" has not been filled with proper image information yet
> when the input image is not in Analyze image format. I think
> "this->m_ComponentType" should be referred instead. My test code is attached
> here. I used "brainweb1e1a10f20.mha" as the input image.
>
> Jian
>
> Command line:
> ImageReadWriteAnalyze brainweb1e1a10f20.mha brainweb1e1a10f20.img
>
> Source Code:
>
>
> /*=========================================================================
>
> Program: Insight Segmentation & Registration Toolkit
> Module: $ ImageReadWriteAnalyze.cxx $
> Language: C++
> Date: $Date: 2008/02/07 $
> Version: $Revision: 1.0 $
> Author: Jian Wu
>
>
> =========================================================================*/
> #if defined(_MSC_VER)
> #pragma warning ( disable : 4786 )
> #endif
>
> #ifdef __BORLANDC__
> #define ITK_LEAN_AND_MEAN
> #endif
>
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> #include "itkAnalyzeImageIO.h"
>
> #include "itkImage.h"
>
>
> int main( int argc, char ** argv )
> {
> if( argc < 3 )
> {
> std::cerr << "Usage: " << std::endl;
> std::cerr << argv[0] << " inputImageFile outputImageFile " <<
> std::endl;
> return EXIT_FAILURE;
> }
>
> typedef unsigned short PixelType;
> const unsigned int Dimension = 3;
> typedef itk::Image< PixelType, Dimension > ImageType;
>
> typedef itk::ImageFileReader< ImageType > ReaderType;
> typedef itk::ImageFileWriter< ImageType > WriterType;
> typedef itk::AnalyzeImageIO ImageIOType;
>
>
> ReaderType::Pointer reader = ReaderType::New();
> WriterType::Pointer writer = WriterType::New();
> ImageIOType::Pointer analyzeIO = ImageIOType::New();
>
> const char * inputFilename = argv[1];
> const char * outputFilename = argv[2];
>
> reader->SetFileName( inputFilename );
> writer->SetFileName( outputFilename );
>
> writer->SetInput( reader->GetOutput() );
> writer->SetImageIO( analyzeIO );
>
> try
> {
> writer->Update();
> }
> catch( itk::ExceptionObject & err )
> {
> std::cerr << "ExceptionObject caught !" << std::endl;
> std::cerr << err << std::endl;
> return EXIT_FAILURE;
> }
>
> return EXIT_SUCCESS;
> }
>
>
>
>
>
>
>
> ____________________________________________________________________________________
> Looking for last minute shopping deals?
> Find them fast with Yahoo! Search.
> http://tools.search.yahoo.com/newsearch/category.php?category=shopping
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20080207/932b42ea/attachment.htm
More information about the Insight-users
mailing list