Date Редакция Категория sci Теги matlab

Поворот на заданный угол, масштабирование и перенос.

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.

t01.png

t02.png

t03.png

t04.png

t05.png



Комментарии

comments powered by Disqus