X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkImageToImageGenericFilterBase.cxx;h=c538ac0d196a3773508918f110b093785a8be7e8;hb=543b72e23ad001ac2a7743b9beacf48e2d0054ac;hp=8b0505d7bb2ec214db028ef0fba9a1211640a5f3;hpb=573d80d0f7a17607d2ee883c21c940c0ba020282;p=clitk.git diff --git a/common/clitkImageToImageGenericFilterBase.cxx b/common/clitkImageToImageGenericFilterBase.cxx index 8b0505d..c538ac0 100644 --- a/common/clitkImageToImageGenericFilterBase.cxx +++ b/common/clitkImageToImageGenericFilterBase.cxx @@ -36,6 +36,7 @@ clitk::ImageToImageGenericFilterBase::ImageToImageGenericFilterBase(std::string m_FailOnImageTypeError = true; m_ReadOnDisk = true; m_WriteOnDisk = true; + m_WriteCompression = false; // m_LastError = ""; // StopOnErrorOn(); SetFilterBase(NULL); @@ -72,6 +73,14 @@ void clitk::ImageToImageGenericFilterBase::EnableWriteOnDisk(bool b) //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +void clitk::ImageToImageGenericFilterBase::EnableWriteCompression(bool b) +{ + m_WriteCompression = b; +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void clitk::ImageToImageGenericFilterBase::SetInputFilename(const std::string & filename) { @@ -275,11 +284,11 @@ void clitk::ImageToImageGenericFilterBase::SetNextOutput::Pointer clitk::ImageToImageGenericFilterBase::GetInput >(unsigned int n); -#define DEF_SetNextOutput_And_GetInput_WithCompo(Compo, Dim) \ +#define DEF_SetNextOutput_And_GetInput_WithCompo(PixelType, Compo, Dim) \ template \ - void clitk::ImageToImageGenericFilterBase::SetNextOutput, Dim> >(itk::Image,Dim>::Pointer output); \ + void clitk::ImageToImageGenericFilterBase::SetNextOutput, Dim> >(itk::Image,Dim>::Pointer output); \ template \ - itk::Image, Dim>::Pointer clitk::ImageToImageGenericFilterBase::GetInput, Dim> >(unsigned int n); + itk::Image, Dim>::Pointer clitk::ImageToImageGenericFilterBase::GetInput, Dim> >(unsigned int n); DEF_SetNextOutput_And_GetInput(char, 2); DEF_SetNextOutput_And_GetInput(unsigned char, 2); @@ -297,15 +306,77 @@ DEF_SetNextOutput_And_GetInput(int, 3); DEF_SetNextOutput_And_GetInput(float, 3); DEF_SetNextOutput_And_GetInput(double, 3); -DEF_SetNextOutput_And_GetInput_WithCompo(2, 2); -DEF_SetNextOutput_And_GetInput_WithCompo(2, 3); -DEF_SetNextOutput_And_GetInput_WithCompo(2, 4); -DEF_SetNextOutput_And_GetInput_WithCompo(3, 2); -DEF_SetNextOutput_And_GetInput_WithCompo(3, 3); -DEF_SetNextOutput_And_GetInput_WithCompo(3, 4); -DEF_SetNextOutput_And_GetInput_WithCompo(4, 2); -DEF_SetNextOutput_And_GetInput_WithCompo(4, 3); -DEF_SetNextOutput_And_GetInput_WithCompo(4, 4); +/* +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 2, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 2, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 2, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 3, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 3, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 3, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 4, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 4, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned char, 4, 4); + +DEF_SetNextOutput_And_GetInput_WithCompo(char, 2, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 2, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 2, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 3, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 3, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 3, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 4, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 4, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(char, 4, 4); + +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 2, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 2, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 2, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 3, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 3, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 3, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 4, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 4, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(unsigned short, 4, 4); + +DEF_SetNextOutput_And_GetInput_WithCompo(short, 2, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 2, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 2, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 3, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 3, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 3, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 4, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 4, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(short, 4, 4); + +DEF_SetNextOutput_And_GetInput_WithCompo(int, 2, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 2, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 2, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 3, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 3, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 3, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 4, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 4, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(int, 4, 4); +*/ + +DEF_SetNextOutput_And_GetInput_WithCompo(float, 2, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 2, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 2, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 3, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 3, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 3, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 4, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 4, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(float, 4, 4); + +DEF_SetNextOutput_And_GetInput_WithCompo(double, 2, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 2, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 2, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 3, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 3, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 3, 4); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 4, 2); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 4, 3); +DEF_SetNextOutput_And_GetInput_WithCompo(double, 4, 4); DEF_SetNextOutput_And_GetInput(char, 4); DEF_SetNextOutput_And_GetInput(unsigned char, 4); @@ -321,7 +392,7 @@ template void clitk::ImageToImageGenericFilterBase::SetNextOutput(typename ImageType::Pointer output) { if (m_WriteOnDisk && m_OutputFilenames.size()) { - clitk::writeImage(output, m_OutputFilenames.front(), m_IOVerbose); + clitk::writeImage(output, m_OutputFilenames.front(), m_IOVerbose, m_WriteCompression); m_OutputFilenames.pop_front(); } if (m_InputVVImages.size()) //We assume that if a vv image is set as input, we want one as the output @@ -341,7 +412,7 @@ typename ImageType::Pointer clitk::ImageToImageGenericFilterBase::GetInput(unsig return typename ImageType::Pointer(const_cast(vvImageToITK(m_InputVVImages[n]).GetPointer())); else { assert(false); //No input, this shouldn't happen - return typename ImageType::Pointer(NULL); + return typename ImageType::Pointer((ImageType*)ITK_NULLPTR); } } }