영상 크기 조정하기
이 예제에서는 imresize
함수를 사용하여 영상의 크기를 조정하는 방법을 보여줍니다.
먼저 영상을 읽어 들여 표시합니다.
I = imread("circuit.tif");
imshow(I)
배율 값 지정하기
imresize
함수를 사용하여 영상의 크기를 조정합니다. 이 예제에서는 배율 인자를 지정합니다. 영상을 확대하려면 1보다 큰 배율 인자를 지정하십시오.
magnificationFactor = 1.25; J = imresize(I,magnificationFactor);
원본 영상과 확대된 영상을 몽타주 형태로 표시합니다.
imshowpair(I,J,method="montage")
출력 영상의 크기 지정하기
영상의 크기를 다시 조정합니다. 이번에는 배율 값 대신 출력 영상의 원하는 크기를 지정합니다. imresize
에 출력 영상의 행 개수와 열 개수를 나타내는 벡터를 전달합니다. 지정한 크기가 입력 영상과 동일한 종횡비를 만들어 내지 않는다면 출력 영상이 왜곡됩니다. 벡터의 요소 중 하나를 NaN
으로 지정하면 imresize
는 영상의 종횡비를 유지하도록 해당 차원의 값을 계산합니다. 다중 해상도 처리에 필요한 크기 조정을 수행하려면 impyramid
를 사용하십시오.
K = imresize(I,[100 150]);
imshowpair(I,K,method="montage")
보간 방법 지정하기
영상의 크기를 다시 조정합니다. 이번에는 보간 방법을 지정합니다. 영상을 확대하면 출력 영상이 원본 영상보다 많은 픽셀을 포함하게 됩니다. imresize
는 이러한 픽셀의 값을 정하기 위해 보간을 사용하여 해당 픽셀 위치 가까이에 있는 일부 픽셀 세트의 가중 평균을 계산합니다. imresize
는 점에서 각 픽셀까지의 거리에 따라 가중치를 적용합니다. imresize
는 기본적으로 쌍삼차 보간을 사용하지만 다른 보간 방법이나 보간 커널을 지정할 수 있습니다. 사용자 지정 보간 커널을 지정할 수도 있습니다. 이 예제에서는 최근접이웃 보간을 사용합니다.
L = imresize(I,magnificationFactor,"nearest");
쌍삼차 보간 J
를 사용하여 크기가 조정된 영상과 최근접이웃 보간 L
을 사용하여 크기가 조정된 영상을 몽타주 형태로 표시합니다.
imshowpair(J,L,method="montage")
영상 축소 시 에일리어싱 방지하기
영상의 크기를 다시 조정합니다. 이번에는 영상의 크기를 축소합니다. 영상의 크기를 줄이면 출력 영상의 픽셀 개수가 줄어들기 때문에 원본 픽셀 중 일부가 손실됩니다. 이로 인해 에일리어싱과 같은 아티팩트가 발생할 수 있습니다. 크기 축소의 결과로 발생하는 에일리어싱은 보통 출력 영상에서 (특히 고대비 영상에서) 계단 패턴으로 나타나거나 모아레 패턴(잔물결 효과)으로 나타납니다. 기본적으로, imresize
는 최근접이웃을 제외한 모든 보간 유형에서 출력 영상에 대한 에일리어싱 영향을 제한하기 위해 안티에일리어싱을 사용합니다. 안티에일리어싱을 끄려면 "Antialiasing"
이름-값 인수를 지정하고 값을 false
로 설정하십시오. 안티에일리어싱이 켜진 상태라 하더라도, 영상의 크기를 줄이면 항상 정보가 손실되기 때문에 크기 조정으로 인한 아티팩트가 발생할 수 있습니다.
magnificationFactor = 0.66; M = imresize(I,magnificationFactor); N = imresize(I,magnificationFactor,Antialiasing=false);
크기 조정된 영상에 안티에일리어싱을 적용한 경우와 적용하지 않은 경우를 몽타주 형태로 표시합니다.
imshowpair(M,N,method="montage")