These methods expect arguments of same type as the pixels in your image. Since the pixel in your image is a vector (aka multi-channel image), you should input a vector.
Giving only one value is ambiguous, i.e. in which channel should the value goes ? first? all?
If it’s the latter, you could do something like:
I guess that MinMaxCurvatureFlowImageFilter does not support vector images. You might use SplitComponentsImageFilter or VectorImageToImageAdaptor to split the image into constituent channels, apply some processing on each channel independently, and combine them using ComposeImageFilter.
Ok, but in InsightToolkit-5.0.0/Examples/Filtering/MinMaxCurvatureFlowImageFilter.cxx in this example input image has 3 channels and still it does not specify the number of channels.
But still it filters image and writes in the file as a multichanel image
And one more question,
If MaxCurvatureFlowImageFilter does not support vector images how can I filter multi channel images without using vector? Because as I said in example there is no use of vector, but it filters fine
Instead of itk::Vector<uint8_t, 3>, you might want to try itk::RGBPixel<uint8_t>.
In the example you mentioned, the pixel type is scalar = grayscale (float). If color image is supplied, the IO mechanism in ITK converts it to grayscale and the example deals with that afterwards.