Допустим, у меня есть векторное изображение:
using VectorPixelType = itk::Vector< float, 3>;
using DisplacementFieldType = itk::Image< VectorPixelType, 3>;
DisplacementFieldType ::Pointer displacementField = DisplacementFieldType ::New();
Значение displacementField является трехмерным изображением, которое имеет 3 компонента. Затем я хочу умножить x-компонент на 2, умножить y-компонент на 3 и умножить z-компонент на 4.
Я знаю, что итератор изображения является полезным классом для этой функции, просто например:
using ImageIterator = itk::ImageRegionIterator<DisplacementFieldType>;
ImageIterator it(displacementField, displacementField->GetRequestedRegion());
while(!it.IsAtEnd())
{
it.Set(it.Get()*2);
}
Однако этот код умножит x-, y- и z-компонент на 2. Я хочу отдельно умножить x-, y- и z-компонент на коэффициент. Как я могу это сделать?