[MATLAB] 영상 좌우 반전, 상하 반전, 회전하기, fliplr, flipud, rot90 함수

코딩/matlab|2019. 12. 17. 08:52

안녕하세요. 비스카이비전의 심교훈입니다.^^ 

 

오늘은 매틀랩을 이용해서 영상을 좌우 반전, 상하 반전, 회전하는 방법에 대해 알아보도록 하겠습니다. 결론적으로 말해서 좌우반전에는 fliplr, 상하반전에는 flipup, 회전에는 rot90 함수가 사용됩니다. 긴 말 필요없이 바로 예제로 이 함수들을 어떻게 활용하는지 살펴보겠습니다. 

 

다음 코드는 하나의 이미지를 읽어서 좌우 반전, 상하 반전 시키고, 90도 회전, 180도 회전, 270도 회전시키는 작업을 수행합니다. 

 

clc, clear, close all

img = imread('DSC09181.jpg');

flip_img1 = fliplr(img); 
flip_img2 = flipud(img);

figure(1)
subplot(1, 3, 1)
imshow(img)
title('원본')

subplot(1, 3, 2)
imshow(flip_img1)
title('좌우반전')

subplot(1, 3, 3)
imshow(flip_img2)
title('상하반전')

rot_img1 = rot90(img); % rot90(img, 1)과 같은 의미를 갖습니다. 90도 회전
rot_img2 = rot90(img, 2); % 180도 회전
rot_img3 = rot90(img, 3); % 270도 회전


figure(2)
subplot(1, 4, 1)
imshow(img)
title('원본')

subplot(1, 4, 2)
imshow(rot_img1)
title('90도 회전')

subplot(1, 4, 3)
imshow(rot_img2)
title('180도 회전')

subplot(1, 4, 4)
imshow(rot_img3)
title('270도 회전')

 

코드에서 알 수 있듯이, 90도를 회전하기 위해서는 rot90(입력 이미지) 또는 rot90(입력 이미지, 1)을 사용하면 되고, 180도를 회전시키기 위해서는 rot90(입력 이미지, 2)를 사용하면 됩니다. 90 * 2번째 입력 인수로 회전의 각도를 결정짓습니다.  

 

결과를 확인해볼까요? 

 

 

 

제대로 좌우 반전, 상하 반전, 회전 되었죠? 여기서 기억할 것은 rot90 함수는 시계 반대 방향으로 회전시킨다는 점입니다. 

 

오늘 포스팅은 이것으로 마치도록 하겠습니다. 계속해서 MATLAB 내장 함수들을 포스팅해서 일종의 레퍼런스 블로그를 만들어볼 생각입니다.^^ 약 100개 정도 글이 쌓이면 웬만한 유용한 함수는 커버할 수 있겠죠?