Шаг 3: Сравнительный анализ различных методов

При реализации технологии вырезания изображений, функция imtransform заполняет оранжевыми треугольниками места, где нет данных. Известно пять модификаций рассматриваемого метода. При этом используется пять различных параметров ('fill', 'replicate', 'bound', 'circular' и 'symmetric'). Проведем сравнительный анализ первых трех параметров.

Первая опция 'fill' вместе с опциями 'XData' и 'YData' используется в функции imtransform для принудительной установки фона вокруг изображения.

Bf=imtransform(A, T, makeresampler({'cubic', 'nearest'},... 'fill'), 'XData', [-49 500], 'YData', ... [-49 400], 'FillValues', orange);figure, imshow(Bf);title('Pad Method=''fill''');

Шаг 3: Сравнительный анализ различных методов - student2.ru

При использовании второй опции 'replicate' нет необходимости в заполнении пространства вокруг исходного изображения.

Br=imtransform(A, T, makeresampler({'cubic', 'nearest'}, ... 'replicate'), 'XData', [-49 500], 'YData', ... [-49 400]);figure, imshow(Br);title('Pad Method=''replicate''');

Шаг 3: Сравнительный анализ различных методов - student2.ru

Теперь рассмотрим применение третьей опции 'bound'.

Bb=imtransform(A, T, makeresampler({'cubic', 'nearest'}, ... 'bound'), 'XData', [-49 500], 'YData', ... [-49 400], 'FillValues', orange);figure, imshow(Bb);title('Pad Method=''bound''');

Шаг 3: Сравнительный анализ различных методов - student2.ru

Результаты обработки исходного изображения с помощью исследуемого метода при установке опций 'fill' и 'bound' являются очень похожими. Разница состоит в том, что при использовании опции 'bound' при обработке используется кубическая интерполяция и результирующее изображение получается немного размытым. Рассмотрим этот момент более детально и проанализируем результаты обработки с использованием двух опций ('fill' и 'bound') на элементном уровне.

Cf=imtransform(A, T, makeresampler({'cubic', 'nearest'}, ... 'fill'), 'XData', [423 439], 'YData', ... [245 260], 'FillValues', orange);Cb=imtransform(A, T, makeresampler({'cubic', 'nearest'}, ... 'bound'), 'XData', [423 439], 'YData', ... [245 260], 'FillValues', orange);Cf=imresize(Cf, 12, 'nearest');Cb=imresize(Cb, 12, 'nearest');figure;subplot(1, 2, 1); imshow(Cf); title('Pad Method=''fill''');subplot(1, 2, 2); imshow(Cb); title('Pad Method=''bound''');

Шаг 3: Сравнительный анализ различных методов - student2.ru

Наши рекомендации