MATLAB에서 이미지 뒤집기

Ammar Ali 2024년2월15일
  1. MATLAB의 flip() 함수를 사용하여 이미지 뒤집기
  2. MATLAB에서 행렬 조작을 사용하여 이미지 뒤집기
MATLAB에서 이미지 뒤집기

이 튜토리얼에서는 Matlab의 flip() 함수를 사용하여 이미지를 세로로 뒤집는 방법에 대해 설명합니다.

MATLAB의 flip() 함수를 사용하여 이미지 뒤집기

이미지는 픽셀로 구성됩니다. 예를 들어 200 x 200픽셀 이미지가 있는 경우 세로 축에 200픽셀, 가로 축에 200픽셀이 있음을 의미합니다. imread() 함수를 사용하여 Matlab에서 이미지를 읽고 저장해야 합니다. 행렬에 저장되며 행렬의 각 요소는 이미지의 각 픽셀 값입니다. 이미지를 수직으로 뒤집으려면 픽셀의 위치를 ​​변경해야 합니다. 예를 들어, 행렬의 마지막 행이 첫 번째 행이 되고 첫 번째 행이 마지막 행이 되는 식입니다. Matlab 내장 함수 flip()을 사용하여 이미지나 행렬을 뒤집을 수 있습니다. 예를 들어 Matlab의 flip() 함수를 사용하여 이미지를 뒤집고 subplot()imshow() 함수를 사용하여 동일한 플롯에 표시해 보겠습니다. 아래 코드를 참조하십시오.

img = imread('cat.jpg');
img2 = flip(img);
subplot(1,2,1)
imshow(img)
title('Original Image')
subplot(1,2,2)
imshow(img2)
title('Flipped Image')

출력:

matlab에서 flip() 함수를 사용하여 뒤집힌 이미지

위의 출력에서 ​​볼 수 있듯이 이미지가 세로로 뒤집혀 있습니다. 이미지를 수평으로 뒤집고 싶다면 flip() 함수에 두 번째 인수를 추가해야 합니다. 이 인수는 행렬과 같은 flip(img, 2)의 차원입니다. 예를 들어 위의 출력에서 ​​이미지가 수직으로 뒤집힌 이유 때문에 행렬을 열 방향으로 뒤집었지만 이미지를 수평으로 뒤집고 싶다면 행렬을 행 방향으로 뒤집어야 합니다. Matlab에서 행렬의 첫 번째 차원은 열이고 두 번째 차원은 행입니다. 따라서 이미지를 뒤집으려면 flip() 함수의 두 번째 인수로 차원을 전달해야 합니다. 기본적으로 flip() 함수는 열인 첫 번째 차원을 사용하여 행렬을 뒤집습니다. 일부 이미지에는 그림의 색상을 포함하는 3차원도 있습니다. 3차원을 뒤집으면 이미지가 뒤집히지 않지만 이미지의 색상이 뒤집히거나 변경됩니다.

MATLAB에서 행렬 조작을 사용하여 이미지 뒤집기

Matlab에서 Matrix 조작을 사용하여 행렬을 뒤집을 수도 있습니다. 예를 들어 flip() 함수 대신 Matrix 조작을 사용하여 이미지를 뒤집고 싶다면 위 코드의 flip(img) 함수를 img(end:-1:1,:,:). 이 코드에서는 열 항목의 위치를 ​​변경했으며 다른 두 차원은 그대로 유지됩니다. 두 번째 및 세 번째 차원이 동일하게 유지되도록 콜론을 두 번째 및 세 번째 인수로 사용했습니다. 두 번째 차원을 변경할 수도 있습니다. 예를 들어 Matlab에서 행렬 조작을 사용하여 위의 이미지를 가로뿐만 아니라 세로로 뒤집습니다. 아래 코드를 참조하십시오.

img = imread('cat.jpg');
img2 = img(end:-1:1,end:-1:1,:);
subplot(1,2,1)
imshow(img)
title('Original Image')
subplot(1,2,2)
imshow(img2)
title('Flipped Image')

출력:

행렬 조작을 사용하여 이미지 뒤집기

위의 출력에서 ​​볼 수 있듯이 이미지는 가로뿐만 아니라 세로로도 뒤집혀 있습니다. flip() 함수를 사용하여 한 번에 한 차원만 뒤집을 수 있지만 행렬 조작을 사용하여 여러 차원을 뒤집을 수 있습니다. Matlab에서 루프를 사용하여 행렬을 뒤집을 수도 있습니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - MATLAB Image