Шаг 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.

a=0.45;T=maketform('affine', [1 0 0; a 1 0; 0 0 1] ); Теперь необходимо выбрать, считать и просмотреть изображение, которое будет использоваться при преобразованиях. A=imread('football.jpg');h1=figure; imshow(A); title('Исходное изображение');

Выберем фон, на котором будет размещено это изображение, например, оранжевый.
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);