[Insight-users] Problems detecting ImageIOBase::MATRIX

Ariel Hernán Curiale curiale at gmail.com
Thu Oct 11 14:09:45 EDT 2012


I found in the header of the images that have the same type of kinds (kinds: vector domain domain ).  I can read both images but I need to force the type (Vector or Matrix).
According to the .nrrd definition the kinds of the image (Matrix) must not be a matrix ?

Saludos
__________________________________
| Ariel Hernán Curiale Ph.D Student
| ETSI Telecomunicación
| Universidad de Valladolid
| Campus Miguel Delibes
| 47011 Valladolid, Spain
| Phone: 983-423000 ext. 5590
| Web: www.curiale.com.ar
|_________________________________

El 11/10/2012, a las 18:19, Ariel Hernán Curiale escribió:

> Anyone know what I'm doing wrong ?
> 
> __________________________________
> | Ariel Hernán Curiale Ph.D Student
> | ETSI Telecomunicación
> | Universidad de Valladolid
> | Campus Miguel Delibes
> | 47011 Valladolid, Spain
> | Phone: 983-423000 ext. 5590
> | Web: www.curiale.com.ar
> |_________________________________
> 
> El 11/10/2012, a las 18:05, Ariel Hernán Curiale escribió:
> 
>> Hi,
>> 
>> I'm trying to detect  if the PixelType of an image is a Vector or a Matrix with this code:
>> 
>> itk::ImageIOBase::Pointer fieldIO;
>> itk::ImageIOBase::IOPixelType pixelType;
>> fieldIO = itk::ImageIOFactory::CreateImageIO(fieldPathFile.c_str(), itk::ImageIOFactory::ReadMode);
>> fieldIO->SetFileName("field.nrrd");
>> fieldIO->ReadImageInformation();
>> pixelType = fieldIO->GetPixelType();
>> 
>> switch(pixelType)
>> 	{
>>  	case itk::ImageIOBase::MATRIX:
>> 		std::cout<<"Matrix....."<<std::endl;
>> 	        break;
>>         case itk::ImageIOBase::VECTOR:
>> 		std::cout<<"Vector....."<<std::endl;
>>                 break;
>> 	default:
>>       		std::cerr << "PixelType unsupported." << std::endl;
>>       		return EXIT_FAILURE;
>>     }
>> 
>> 
>> 
>> The field.nrrd was write  using this code:
>> 
>> 1) Vector:
>> typedef itk::Image< itk::Vector<float,3>,3> DeformationFieldType;
>> typedef itk::ImageFileWriter<DeformationFieldType> FieldWriterType;
>>       typename FieldWriterType::Pointer fieldWriter = FieldWriterType::New();
>>       fieldWriter->SetInput(deformationField);
>>       fieldWriter->SetFileName("fieldVector.nrrd");
>>       fieldWriter->Update();
>> 
>> 2) Matrix:
>> typedef itk::Matrix< double, 2, 2 > 	TensorPixelType;
>>   typedef itk::Image<TensorPixelType, 2>	StrainImageType;
>> typedef itk::ImageFileWriter<typename StrainFilterType::OutputImageType> FieldWriterType;
>>       typename FieldWriterType::Pointer fieldWriter = FieldWriterType::New();
>>       fieldWriter->SetInput(strainFilter->GetStrainTensor());
>>       fieldWriter->SetFileName("fieldMatrx.nrrd");
>>       fieldWriter->Update();
>> 
>> 
>> But in both case the pixelType is itk::ImageIOBase::VECTOR.
>> 
>> What I'm doing wrong ?
>> 
>> Thanks
>> __________________________________
>> | Ariel Hernán Curiale Ph.D Student
>> | ETSI Telecomunicación
>> | Universidad de Valladolid
>> | Campus Miguel Delibes
>> | 47011 Valladolid, Spain
>> | Phone: 983-423000 ext. 5590
>> | Web: www.curiale.com.ar
>> |_________________________________
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20121011/2b5b70c2/attachment.htm>


More information about the Insight-users mailing list