Шаг 1: Первичное преобразование изображений
В двумерном случае, при создании обивочных материалов на основе изображений, преобразования заключаются в трансформации исходной пары координат [u v] в пару результирующих координат [x y]. Это можно представить в таком виде
x=u+a*v y=v | (1) |
где является константой.
В отдельных случаях применяют аффинные преобразования, которые можно записать так как
[ x y 1 ]=[ u v 1 ]*[ 1 0 0a 1 00 0 1] | (2) |
Значения x и y определяются из выражения 1.
Приняв, что , создадим структуру аффинных преобразований с использованием функции maketform.
Выберем фон, на котором будет размещено это изображение, например, оранжевый.
orange=[255 127 0]';
Считаем и используем параметр T для преобразования данных в A. Эти преобразования можно представить следующим образом:
B=imtransform(A, T, 'cubic', 'FillValues', orange);
При проведении подобного рода преобразований используют кубическую интерполяцию вдоль строк и столбцов. В данном случае, взамен этой интерполяции, будет использоваться интерполяция по ближайшей окрестности. При этом для формирования результата применяется функция imtransform.
R=makeresampler({'cubic', 'nearest'}, 'fill');
B=imtransform(A, T, R, 'FillValues', orange);
h2=figure; imshow(B);