Поворот на заданный угол, масштабирование и перенос.
A = imread('kitten.bmp','bmp'); % считать картинку из файла
[N,M] = size(A); % определить ее размер
[x1,y1] = find(~A); % найти координаты закрашенных пикселей
x = y1'; y = (M-x1)'; % вычислить координаты точек
plot(x,y,'b.') % рисуем
% зададим свойства координатных осей
grid on
v = 1.5*max([N,M]); % зададим размеры сетки
axis([-v v -v v])
axis square
title('Press any key')
hold on
pause
a =-pi/3; % угол поворота
R = [cos(a), sin(a);...
-sin(a), cos(a)];
X = R*[x;y];
x = X(1,:); y = X(2,:);
plot(x,y,'r.')
xlabel('Rotation 60 degrees')
pause
mx = 1; my =-1; % коэффициенты масштабированиЯ
S = [mx, 0;...
0, my];
X = S*[x;y];
x = X(1,:); y = X(2,:);
plot(x,y,'g.')
xlabel('Reflection')
pause
x0 = 45; y0 =-25; % смещение начала координат
x = X(1,:) + x0; y = X(2,:) + y0;
plot(x,y,'m.')
xlabel('Translation')
pause
xlabel(*)
title('That*s all, folks!')
Файл kitten.bmp.
Комментарии
comments powered by Disqus