Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions Modules/Core/Common/wrapping/itkImageToImageFilterA.wrap
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,54 @@ itk_wrap_class("itk::ImageToImageFilter" POINTER)
# Vector types
itk_wrap_image_filter_combinations("${WRAP_ITK_VECTOR}" "${WRAP_ITK_VECTOR}")

foreach(image_dim ${ITK_WRAP_IMAGE_DIMS})
if(ITK_WRAP_vector_float AND ITK_WRAP_vector_double)
if(ITKM_VIF${image_dim} AND ITKM_VID${image_dim} AND ITKT_VIF${image_dim} AND ITKT_VID${image_dim})
# VectorImage(float) <-> VectorImage(double)
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_VID${image_dim}}")
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_VIF${image_dim}}")
endif()
foreach(pixel_type "${WRAP_ITK_RGB};${WRAP_ITK_RGBA}")
if(ITKM_VIF${image_dim} AND ITKM_I${ITKM_${pixel_type}}${image_dim} AND ITKT_VIF${image_dim} AND ITKT_I${ITKM_${pixel_type}}${image_dim})
# VectorImage(float) <-> (RGBPixel, RGBAPixel)
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_I${ITKM_${pixel_type}}${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_I${ITKM_${pixel_type}}${image_dim}}")
itk_wrap_template("${ITKM_I${ITKM_${pixel_type}}${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_I${ITKM_${pixel_type}}${image_dim}},${ITKT_VIF${image_dim}}")
endif()
if(ITKM_VID${image_dim} AND ITKM_I${ITKM_${pixel_type}}${image_dim} AND ITKT_VID${image_dim} AND ITKT_I${ITKM_${pixel_type}}${image_dim})
# VectorImage(double) <-> (RGBPixel, RGBAPixel)
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_I${ITKM_${pixel_type}}${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_I${ITKM_${pixel_type}}${image_dim}}")
itk_wrap_template("${ITKM_I${ITKM_${pixel_type}}${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_I${ITKM_${pixel_type}}${image_dim}},${ITKT_VID${image_dim}}")
endif()
endforeach()
endif()
foreach(vector_components ${ITK_WRAP_VECTOR_COMPONENTS})
if(ITK_WRAP_vector_float)
if(ITKM_IVF${vector_components}${image_dim} AND ITKM_VIF${image_dim} AND ITKT_IVF${vector_components}${image_dim} AND ITKT_VIF${image_dim})
# VectorImage(float) <-> Vector(float)
itk_wrap_template("${ITKM_IVF${vector_components}${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_IVF${vector_components}${image_dim}},${ITKT_VIF${image_dim}}")
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_IVF${vector_components}${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_IVF${vector_components}${image_dim}}")
endif()
if(ITKM_ICVF${vector_components}${image_dim} AND ITKM_VIF${image_dim} AND ITKT_ICVF${vector_components}${image_dim} AND ITKT_VIF${image_dim})
# VectorImage(float) <-> CovariantVector(float)
itk_wrap_template("${ITKM_ICVF${vector_components}${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_ICVF${vector_components}${image_dim}},${ITKT_VIF${image_dim}}")
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_ICVF${vector_components}${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_ICVF${vector_components}${image_dim}}")
endif()
endif()
if(ITK_WRAP_vector_double)
if(ITKM_IVD${vector_components}${image_dim} AND ITKM_VID${image_dim} AND ITKT_IVD${vector_components}${image_dim} AND ITKT_VID${image_dim})
# VectorImage(double) <-> Vector(double)
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_IVD${vector_components}${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_IVD${vector_components}${image_dim}}")
itk_wrap_template("${ITKM_IVD${vector_components}${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_IVD${vector_components}${image_dim}},${ITKT_VID${image_dim}}")
endif()
if(ITKM_ICVD${vector_components}${image_dim} AND ITKM_VID${image_dim} AND ITKT_ICVD${vector_components}${image_dim} AND ITKT_VID${image_dim})
# VectorImage(double) <-> CovariantVector(double)
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_ICVD${vector_components}${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_ICVD${vector_components}${image_dim}}")
itk_wrap_template("${ITKM_ICVD${vector_components}${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_ICVD${vector_components}${image_dim}},${ITKT_VID${image_dim}}")
endif()
endif()
endforeach()
endforeach()

# For GradientRecursiveGaussianImageFilter we need some specific combinations
foreach(image_dim ${ITK_WRAP_IMAGE_DIMS})
foreach(input_vector_dim ${ITK_WRAP_VECTOR_COMPONENTS})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ CastImageFilter<TInputImage, TOutputImage>::DynamicThreadedGenerateDataDispatche
// Implementation for non-implicit convertible pixels which are
// itk-array-like.

static_assert(OutputPixelType::Dimension == InputPixelType::Dimension, "Vector dimensions are required to match!");
static_assert(std::is_convertible<typename InputPixelType::ValueType, typename OutputPixelType::ValueType>::value,
"Component types are required to be convertible.");

Expand All @@ -140,6 +139,8 @@ CastImageFilter<TInputImage, TOutputImage>::DynamicThreadedGenerateDataDispatche

this->CallCopyOutputRegionToInputRegion(inputRegionForThread, outputRegionForThread);

const unsigned int componentsPerPixel = outputPtr->GetNumberOfComponentsPerPixel();

// Define the iterators
ImageScanlineConstIterator<TInputImage> inputIt(inputPtr, inputRegionForThread);
ImageScanlineIterator<TOutputImage> outputIt(outputPtr, outputRegionForThread);
Expand All @@ -152,7 +153,7 @@ CastImageFilter<TInputImage, TOutputImage>::DynamicThreadedGenerateDataDispatche
{
const InputPixelType & inputPixel = inputIt.Get();
OutputPixelType value;
for (unsigned int k = 0; k < OutputPixelType::Dimension; k++)
for (unsigned int k = 0; k < componentsPerPixel; k++)
{
value[k] = static_cast<typename OutputPixelType::ValueType>(inputPixel[k]);
}
Expand Down
48 changes: 48 additions & 0 deletions Modules/Filtering/ImageFilterBase/wrapping/itkCastImageFilter.wrap
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,54 @@ itk_wrap_class("itk::CastImageFilter" POINTER_WITH_SUPERCLASS)
# vector <-> vector
itk_wrap_image_filter_combinations("${WRAP_ITK_VECTOR}" "${WRAP_ITK_VECTOR}")

foreach(image_dim ${ITK_WRAP_IMAGE_DIMS})
if(ITK_WRAP_vector_float AND ITK_WRAP_vector_double)
if(ITKM_VIF${image_dim} AND ITKM_VID${image_dim} AND ITKT_VIF${image_dim} AND ITKT_VID${image_dim})
# VectorImage(float) <-> VectorImage(double)
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_VID${image_dim}}")
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_VIF${image_dim}}")
endif()
foreach(pixel_type "${WRAP_ITK_RGB};${WRAP_ITK_RGBA}")
if(ITKM_VIF${image_dim} AND ITKM_I${ITKM_${pixel_type}}${image_dim} AND ITKT_VIF${image_dim} AND ITKT_I${ITKM_${pixel_type}}${image_dim})
# VectorImage(float) <-> (RGBPixel, RGBAPixel)
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_I${ITKM_${pixel_type}}${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_I${ITKM_${pixel_type}}${image_dim}}")
itk_wrap_template("${ITKM_I${ITKM_${pixel_type}}${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_I${ITKM_${pixel_type}}${image_dim}},${ITKT_VIF${image_dim}}")
endif()
if(ITKM_VID${image_dim} AND ITKM_I${ITKM_${pixel_type}}${image_dim} AND ITKT_VID${image_dim} AND ITKT_I${ITKM_${pixel_type}}${image_dim})
# VectorImage(double) <-> (RGBPixel, RGBAPixel)
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_I${ITKM_${pixel_type}}${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_I${ITKM_${pixel_type}}${image_dim}}")
itk_wrap_template("${ITKM_I${ITKM_${pixel_type}}${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_I${ITKM_${pixel_type}}${image_dim}},${ITKT_VID${image_dim}}")
endif()
endforeach()
endif()
foreach(vector_components ${ITK_WRAP_VECTOR_COMPONENTS})
if(ITK_WRAP_vector_float)
if(ITKM_IVF${vector_components}${image_dim} AND ITKM_VIF${image_dim} AND ITKT_IVF${vector_components}${image_dim} AND ITKT_VIF${image_dim})
# VectorImage(float) <-> Vector(float)
itk_wrap_template("${ITKM_IVF${vector_components}${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_IVF${vector_components}${image_dim}},${ITKT_VIF${image_dim}}")
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_IVF${vector_components}${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_IVF${vector_components}${image_dim}}")
endif()
if(ITKM_ICVF${vector_components}${image_dim} AND ITKM_VIF${image_dim} AND ITKT_ICVF${vector_components}${image_dim} AND ITKT_VIF${image_dim})
# VectorImage(float) <-> CovariantVector(float)
itk_wrap_template("${ITKM_ICVF${vector_components}${image_dim}}${ITKM_VIF${image_dim}}" "${ITKT_ICVF${vector_components}${image_dim}},${ITKT_VIF${image_dim}}")
itk_wrap_template("${ITKM_VIF${image_dim}}${ITKM_ICVF${vector_components}${image_dim}}" "${ITKT_VIF${image_dim}},${ITKT_ICVF${vector_components}${image_dim}}")
endif()
endif()
if(ITK_WRAP_vector_double)
if(ITKM_IVD${vector_components}${image_dim} AND ITKM_VID${image_dim} AND ITKT_IVD${vector_components}${image_dim} AND ITKT_VID${image_dim})
# VectorImage(double) <-> Vector(double)
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_IVD${vector_components}${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_IVD${vector_components}${image_dim}}")
itk_wrap_template("${ITKM_IVD${vector_components}${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_IVD${vector_components}${image_dim}},${ITKT_VID${image_dim}}")
endif()
if(ITKM_ICVD${vector_components}${image_dim} AND ITKM_VID${image_dim} AND ITKT_ICVD${vector_components}${image_dim} AND ITKT_VID${image_dim})
# VectorImage(double) <-> CovariantVector(double)
itk_wrap_template("${ITKM_VID${image_dim}}${ITKM_ICVD${vector_components}${image_dim}}" "${ITKT_VID${image_dim}},${ITKT_ICVD${vector_components}${image_dim}}")
itk_wrap_template("${ITKM_ICVD${vector_components}${image_dim}}${ITKM_VID${image_dim}}" "${ITKT_ICVD${vector_components}${image_dim}},${ITKT_VID${image_dim}}")
endif()
endif()
endforeach()
endforeach()

# RGB <-> RGB
UNIQUE(rgb "RGBUC;${WRAP_ITK_RGB}")
itk_wrap_image_filter_combinations("${rgb}" "${rgb}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
itk.auto_progress(2)

dim = 2
IType = itk.Image[itk.F, dim]
OIType = itk.Image[itk.UC, dim]
InputImageType = itk.Image[itk.F, dim]
OutputImageType = itk.Image[itk.UC, dim]

reader = itk.ImageFileReader[IType].New(FileName=argv[1])
filter = itk.CastImageFilter[IType, OIType].New(reader)
writer = itk.ImageFileWriter[OIType].New(filter, FileName=argv[2])
reader = itk.ImageFileReader[InputImageType].New(FileName=argv[1])
filt = itk.CastImageFilter[InputImageType, OutputImageType].New(reader)
writer = itk.ImageFileWriter[OutputImageType].New(filt, FileName=argv[2])

writer.Update()
20 changes: 18 additions & 2 deletions Modules/Segmentation/SuperPixel/wrapping/itkSLICImageFilter.wrap
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,27 @@ itk_wrap_class("itk::SLICImageFilter" POINTER_WITH_SUPERCLASS)

set(from_types "${WRAP_ITK_SCALAR}")

# VectorImages
foreach(d ${ITK_WRAP_IMAGE_DIMS})
foreach(f ${from_types})
foreach(t ${to_types})
itk_wrap_template("${ITKM_VI${f}${d}}${ITKM_I${t}${d}}" "${ITKT_VI${f}${d}},${ITKT_I${t}${d}}")
if(ITKM_VI${f}${d} AND ITKT_VI${f}${d})
# VectorImage as input
itk_wrap_template("${ITKM_VI${f}${d}}${ITKM_I${t}${d}}" "${ITKT_VI${f}${d}},${ITKT_I${t}${d}}")
endif()
if(ITKM_I${ITKM_RGB${f}}${d} AND ITKT_I${ITKM_RGB${f}}${d})
# Image of RGBPixel as input
itk_wrap_template("${ITKM_I${ITKM_RGB${f}}${d}}${ITKM_I${t}${d}}" "${ITKT_I${ITKM_RGB${f}}${d}},${ITKT_I${t}${d}}")
endif()
foreach(c ${ITK_WRAP_VECTOR_COMPONENTS})
if(ITKM_I${ITKM_V${f}${c}}${d} AND ITKT_I${ITKM_V${f}${c}}${d})
# Image of Vector as input
itk_wrap_template("${ITKM_I${ITKM_V${f}${c}}${d}}${ITKM_I${t}${d}}" "${ITKT_I${ITKM_V${f}${c}}${d}},${ITKT_I${t}${d}}")
endif()
if(ITKM_I${ITKM_CV${f}${c}}${d} AND ITKT_I${ITKM_CV${f}${c}}${d})
# Image of CovariantVector as input
itk_wrap_template("${ITKM_I${ITKM_CV${f}${c}}${d}}${ITKM_I${t}${d}}" "${ITKT_I${ITKM_CV${f}${c}}${d}},${ITKT_I${t}${d}}")
endif()
endforeach()
endforeach()
endforeach()
endforeach()
Expand Down