[Insight-users] Problem writing to Analyze file format

Bill Lorensen bill.lorensen at gmail.com
Mon Jun 16 09:39:41 EDT 2008


Brandon,

Can you try running the itkOrientImageTests in Testing/Code/BasicFilters?

ctest -V -R OrientImageFilter

Bill

On Sun, Jun 15, 2008 at 2:27 AM, Brandon Lin <brandon.lin at gmail.com> wrote:
> Thank you Daniele and Oleksandr.  There is a lot of good information.
>
> I was trying to use the orient image filter to re-orient the images to RPI
> direction as suggested by Daniele.  However, I kept getting this exception
> druing writer->Update():
>
> ExceptionObject caught !
>
> itk::ExceptionObject (0126F420)
> Location: "unknown"
> File:
> D:\InsightToolkit-3.2.0\Code\BasicFilters\itkPermuteAxesImageFilter.txx
> Line: 104
> Description: Order indices must not repeat
>
> The code is very simple as below:
>     typedef itk::OrientImageFilter<ImageType,ImageType> OrienterType;
>      OrienterType::Pointer orienter = OrienterType::New();
>      orienter->UseImageDirectionOn();
>
> orienter->SetDesiredCoordinateOrientation(itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RPI);
>      orienter->SetInput(reader->GetOutput());
>      writer->SetInput( orienter->GetOutput());
>
>    try
>    {
>     writer->Update();
>    }
>
>    catch( itk::ExceptionObject & err)
>    {
>     std::cerr << "ExceptionObject caught !" << std::endl;
>     std::cerr << err << std::endl;
>     return EXIT_FAILURE;
>    }:
>
>
> Any ideas?  Any comments or feedback is greatly appreciated.
>
> Regards,
> Brandon
>
>
> On 6/13/08, Daniele Domenichelli <daniele.domenichelli at gmail.com> wrote:
>>
>> Oleksandr Dzyubak wrote:
>> > The only problem is that the Analyze75 header does not have a tag with
>> > that info, right?
>>
>> No, analyze has a tag "orient" (1 byte) but it has only 6 valid values
>>
>>          0         transverse unflipped
>>          1         coronal unflipped
>>          2         sagittal unflipped
>>          3         transverse flipped
>>          4         coronal flipped
>>          5         sagittal flipped
>>
>> Nifti uses quaternion for orientation. See nifti header if you are
>> interested:
>>
>>     http://nifti.nimh.nih.gov/pub/dist/src/niftilib/nifti1.h
>>
>>
>>
>> > The Analyze75 header size is 348 vs 352 for NifTI. Does it mean that
>> > those extra bites can hold all the directional info in case of the NIfTI
>> > format and well treated by the ITK filters?
>>
>> No bytes from 349 to 352 are used for extensions.
>> Nifti header in not necessarily 352 bytes, it can contain extensions for
>> example to contain dicom tags (see nifti header for details)
>> Nifti stores informations about orientations of the image in bytes that
>> were not used in Analyze
>>
>>
>> > The question is since the Analyze image format has "poor performance" in
>> > a sense
>> > of the directional info, how does it affect the final results after ITK
>> > filters have been used
>> > on those images? Do any "info corruptions/changes" squeeze in
>> > automatically into
>> > the image info tags afterwards since it might be implemented in a filter
>> > by some defaults?
>>
>> I think that the only thing you should take care of when using analyze
>> files is that you can't write them in any direction, so you may need to
>> reorient the image.
>>
>> I'm not sure about this anyway, because I mostly use nifti, maybe
>> someone else on the mailing list who uses analyze can tell you something
>> more...
>>
>>
>> Regards,
>> Daniele
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list