if(pixelType=="Type_float")
SetComponentType(itk::ImageIOBase::FLOAT);
- if(dic["dimensions"].GetPointer()==NULL)
+ if( dic["dimensions"].GetPointer() == NULL )
SetNumberOfDimensions(3);
else
SetNumberOfDimensions( ( dynamic_cast<MetaDataIntType *>(dic["dimensions"].GetPointer() )->GetMetaDataObjectValue() ) );
{
SetDimensions(2, dynamic_cast<MetaDataIntType *>(dic["z"].GetPointer() )->GetMetaDataObjectValue() );
SetSpacing(2, dynamic_cast<MetaDataDoubleType *>(dic["spacing_z"].GetPointer() )->GetMetaDataObjectValue() );
+ if(GetSpacing(2) == 0)
+ SetSpacing(2, 1);
}
- std::istringstream iss(
- dynamic_cast<MetaDataStringType*>(dic["matrixTransform"].GetPointer() )->GetMetaDataObjectValue() );
itk::Matrix<double, 4, 4> matrix;
- for(unsigned int j=0; j<4; j++)
- for(unsigned int i=0; i<4; i++)
- iss >> matrix[j][i];
- matrix /= matrix[3][3];
+ if(dic["matrixTransform"].GetPointer() == NULL)
+ matrix.SetIdentity();
+ else
+ {
+ std::istringstream iss(
+ dynamic_cast<MetaDataStringType*>(dic["matrixTransform"].GetPointer() )->GetMetaDataObjectValue() );
+ for(unsigned int j=0; j<4; j++)
+ for(unsigned int i=0; i<4; i++)
+ iss >> matrix[j][i];
+ matrix /= matrix[3][3];
+ }
std::vector<double> direction;
for(unsigned int i=0; i<GetNumberOfDimensions(); i++)
// Adapted from itkRawImageIO
{
+#if ( ITK_VERSION_MAJOR < 5 )
using namespace itk;
// Swap bytes if necessary
if itkReadRawBytesAfterSwappingMacro( unsigned short, USHORT )
else if itkReadRawBytesAfterSwappingMacro( unsigned char, UCHAR )
else if itkReadRawBytesAfterSwappingMacro( unsigned int, UINT )
else if itkReadRawBytesAfterSwappingMacro( int, INT )
- else if itkReadRawBytesAfterSwappingMacro( unsigned int, ULONG )
- else if itkReadRawBytesAfterSwappingMacro( int, LONG )
else if itkReadRawBytesAfterSwappingMacro( float, FLOAT )
else if itkReadRawBytesAfterSwappingMacro( double, DOUBLE );
+#else
+ #define itkReadRawBytesAfterSwappingMacro(StrongType, WeakType) \
+ ( this->GetComponentType() == WeakType ) \
+ { \
+ using InternalByteSwapperType = itk::ByteSwapper<StrongType>; \
+ if ( m_ByteOrder == LittleEndian ) \
+ { \
+ InternalByteSwapperType::SwapRangeFromSystemToLittleEndian( \
+ (StrongType *)buffer, this->GetImageSizeInComponents() ); \
+ } \
+ else if ( m_ByteOrder == BigEndian ) \
+ { \
+ InternalByteSwapperType::SwapRangeFromSystemToBigEndian( \
+ (StrongType *)buffer, this->GetImageSizeInComponents() ); \
+ } \
+ }
+
+ // Swap bytes if necessary
+ if itkReadRawBytesAfterSwappingMacro( unsigned short, USHORT )
+ else if itkReadRawBytesAfterSwappingMacro( short, SHORT )
+ else if itkReadRawBytesAfterSwappingMacro( char, CHAR )
+ else if itkReadRawBytesAfterSwappingMacro( unsigned char, UCHAR )
+ else if itkReadRawBytesAfterSwappingMacro( unsigned int, UINT )
+ else if itkReadRawBytesAfterSwappingMacro( int, INT )
+ else if itkReadRawBytesAfterSwappingMacro( float, FLOAT )
+ else if itkReadRawBytesAfterSwappingMacro( double, DOUBLE );
+#endif
}
}
//--------------------------------------------------------------------
// Write Image Information
-void rtk::ImagXImageIO::WriteImageInformation(bool keepOfStream)
+void rtk::ImagXImageIO::WriteImageInformation( bool itkNotUsed(keepOfStream) )
{
}
//--------------------------------------------------------------------
// Write Image Information
-bool rtk::ImagXImageIO::CanWriteFile(const char* FileNameToWrite)
+bool rtk::ImagXImageIO::CanWriteFile( const char* itkNotUsed(FileNameToWrite) )
{
return false;
}
//--------------------------------------------------------------------
// Write Image
-void rtk::ImagXImageIO::Write(const void * buffer)
+void rtk::ImagXImageIO::Write( const void * itkNotUsed(buffer) )
{
} ////
-