ИТК: как получить 0-й компонент для векторного изображения - PullRequest
0 голосов
/ 24 февраля 2020

Допустим, у меня есть векторное изображение:

    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-компонент на коэффициент. Как я могу это сделать?

...