이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

imresize

영상 크기 조정

설명

예제

J = imresize(I,scale)은 회색조 영상, RGB 영상 또는 이진 영상 Iscale배 크기의 영상 J를 반환합니다. I의 차원이 2차원을 넘을 경우, imresize는 처음 2개 차원의 크기만 조정합니다. 기본적으로, imresize는 쌍삼차(bicubic) 보간을 사용하고 안티에일리어싱을 수행합니다.

선택적으로 GPU를 사용하여 영상 크기를 조정할 수 있습니다(Parallel Computing Toolbox™가 필요함). 자세한 내용은 GPU를 사용한 영상 처리 항목을 참조하십시오.

예제

J = imresize(I,[numrows numcols])는 벡터 [numrows numcols]로 지정된 행 개수와 열 개수를 가지는 영상 J를 반환합니다.

예제

[Y,newmap] = imresize(X,map,___)은 컬러맵 map을 갖는 인덱스 영상 X의 크기를 조정합니다. 기본적으로, imresize는 크기가 조정된 영상과 함께 최적화된 컬러맵 newmap을 반환합니다. 원래 컬러맵과 동일한 컬러맵을 반환하려면 Colormap 이름-값 쌍 인수를 사용하십시오.

이 구문은 GPU에서 지원되지 않습니다.

예제

___ = imresize(___,method)는 사용되는 보간 방법을 지정합니다.

GPU에서는 'bicubic' 보간 방법과 'cubic' 보간 방법만 지원됩니다.

___ = imresize(___,Name,Value)는 이름-값 쌍 인수를 사용하여 크기 조정 연산의 다양한 특성을 제어합니다.

이 구문은 GPU에서 지원되지 않습니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들입니다.

I = imread('rice.png');

스케일링 인자를 지정하고 디폴트 보간 방법과 안티에일리어싱을 사용하여 영상 크기를 조정합니다.

J = imresize(I, 0.5);

원본 영상과 크기 조정된 영상을 표시합니다.

figure
imshow(I)
title('Original Image')

figure
imshow(J)
title('Resized Image')

영상을 작업 공간에 gpuArray로 읽어 들입니다.

I = im2double(gpuArray(imread('rice.png')));

GPU에서 연산을 수행하여 영상 크기를 조정합니다.

J = imresize(I, 0.5);

원본 영상과 크기 조정된 영상을 표시합니다.

figure
imshow(I)
title('Original')
figure
imshow(J)
title('Resized Image')

영상을 작업 공간으로 읽어 들입니다.

I = imread('rice.png');

스케일링 인자와 보간 방법을 지정하여 영상 크기를 조정합니다.

J = imresize(I, 0.5, 'nearest');

원본 영상과 크기 조정된 영상을 표시합니다.

figure
imshow(I)
title('Original Image')

figure
imshow(J)
title('Resized Image Using Nearest-Neighbor')

영상을 작업 공간으로 읽어 들입니다.

[X, map] = imread('trees.tif');

스케일링 인자를 지정하여 영상 크기를 조정합니다. 기본적으로 imresize는 크기 조정된 인덱스 영상과 함께, 최적화된 컬러맵을 반환합니다.

[Y, newmap] = imresize(X, map, 0.5);

원본 영상과 크기 조정된 영상을 표시합니다.

figure
imshow(X,map)
title('Original Image')

figure
imshow(Y,newmap)
title('Resized Image')

영상을 작업 공간으로 읽어 들입니다.

RGB = imread('peppers.png');

출력 영상의 행을 64개로 지정하여 영상 크기를 조정합니다. imresize를 통해, 종횡비를 유지하는 데 필요한 열 개수를 계산합니다.

RGB2 = imresize(RGB, [64 NaN]);

원본 영상과 크기 조정된 영상을 표시합니다.

figure
imshow(RGB)
title('Original Image')

figure
imshow(RGB2)
title('Resized Image')

영상을 작업 공간에 gpuArray로 읽어 들입니다.

RGB = gpuArray(im2single(imread('peppers.png')));

GPU에서 연산을 수행하여 영상 크기를 조정합니다.

RGB2 = imresize(RGB, 0.5);

원본 영상과 크기 조정된 영상을 표시합니다.

figure
imshow(RGB)
title('Original')
figure
imshow(RGB2)
title('Resized Image')

입력 인수

모두 축소

크기를 조정할 영상으로, 임의 차원의 숫자형 배열 또는 논리형 배열로 지정됩니다.

GPU를 사용하여 영상의 크기를 조정하려면 Idouble형 또는 single형의 숫자형 배열을 포함하는 gpuArray로 지정하십시오.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

크기 조정 인자로, 양수로 지정됩니다.

  • scale이 1보다 작으면, 출력 영상(J 또는 Y)은 입력 영상(I 또는 X)보다 작습니다.

  • scale이 1보다 크면 출력 영상은 입력 영상보다 큽니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 영상의 행 및 열 차원으로, 양수 요소를 2개 가진 벡터로 지정됩니다. numrows 또는 numcolsNaN일 수 있습니다. 어느 경우이든 imresize는 행 개수나 열 개수를 자동으로 계산하여 영상 종횡비를 유지합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

크기를 조정할 인덱스 영상으로, 숫자형 배열로 지정됩니다.

데이터형: double | uint8 | uint16

인덱스 영상 X와 연결된 컬러맵으로, cx3 숫자형 행렬로 지정됩니다.

데이터형: double

보간 방법으로, string형 스칼라, 문자형 벡터, 또는 요소를 2개 가진 셀형 배열로 지정됩니다.

method가 string형 스칼라 또는 문자형 벡터인 경우 이는 다음 표에 나열된 특정 방법 또는 명명된 보간 커널을 나타냅니다.

방법설명

'nearest'

최근접이웃 보간으로, 점이 속하는 픽셀 값이 출력 픽셀에 할당됩니다. 다른 픽셀은 고려되지 않습니다.

'bilinear'

쌍선형 보간으로, 출력 픽셀 값은 최근접 2x2 이웃 픽셀의 가중 평균입니다.

'bicubic'

쌍삼차 보간으로, 출력 픽셀 값은 최근접 4x4 이웃 픽셀의 가중 평균입니다.

참고

쌍삼차 보간은 원래 범위를 벗어나는 픽셀 값을 생성할 수 있습니다.

보간 커널설명
'box'상자 형태 커널
'triangle'삼각 커널('bilinear'와 동일)
'cubic'3차 커널('bicubic'과 동일)
'lanczos2'란초스(Lanczos)-2 커널
'lanczos3'란초스(Lanczos)-3 커널

method가 요소를 2개 가진 셀형 배열일 경우, 이는 사용자 지정 보간 커널을 정의합니다. 셀형 배열은 {f,w} 형식을 가집니다. 여기서, f는 사용자 지정 보간 커널의 함수 핸들이고 w는 사용자 지정 커널의 너비입니다. f(x)는 구간 -w/2 <= x < w/2 밖에서 0이어야 합니다. 함수 핸들 f를 스칼라 또는 벡터 입력값과 함께 호출할 수 있습니다. 사용자 지정 보간 커널의 경우, 출력 영상의 일부 값이 입력 영상의 픽셀 범위를 약간 벗어날 수 있습니다.

데이터형: char | string | cell

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: I2 = imresize(I,0.5,'Antialiasing',false);

영상 축소 시 안티에일리어싱 수행 여부로, 'Antialiasing'과 함께 true 또는 false가 쉼표로 구분되어 지정됩니다.

  • method가 최근접이웃('nearest')이면 'Antialiasing'의 디폴트 값은 false입니다.

  • 다른 모든 보간 방법에 대해서는 디폴트 값이 true입니다.

데이터형: logical

인덱스 영상 X의 최적화된 컬러맵 반환 옵션으로, 'Colormap'과 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'original' — 출력 컬러맵 newmap은 입력 컬러맵 map과 같습니다.

  • 'optimized'imresize는 최적화된 새 컬러맵을 반환합니다.

이 인수는 인덱스 영상의 크기를 조정할 때만 유효합니다.

데이터형: char | string

색 디더링 수행 여부로, 'Dither'와 함께 true 또는 false가 쉼표로 구분되어 지정됩니다. 디더링 과정에서 영상에 특정 형식의 잡음을 적용하여 양자화 오차를 랜덤화하고 큰 규모의 패턴을 방지할 수 있습니다.

이 인수는 인덱스 영상 X의 크기를 조정할 때만 유효합니다.

데이터형: logical

보간 방법으로, 'Method'와 함께 string형 스칼라, 문자형 벡터 또는 요소를 2개 가진 셀형 배열이 쉼표로 구분되어 지정됩니다. 자세한 내용은 method를 참조하십시오.

데이터형: char | string | cell

출력 영상의 크기로, 'OutputSize'와 함께 [numrows numcols] 형식의 요소를 2개 가진 숫자형 벡터가 쉼표로 구분되어 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

크기 조정 스케일링 인자로, 'Scale'과 함께 양수 또는 양수 요소를 2개 가진 벡터가 쉼표로 구분되어 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

크기 조정된 영상으로, 입력 영상 I와 같은 클래스의 숫자형 배열 또는 논리형 배열로 반환됩니다.

GPU를 사용하여 영상의 크기를 조정하면 J는 숫자형 배열을 포함하는 gpuArray로 반환됩니다.

크기 조정된 인덱스 영상으로, 입력 인덱스 영상 X와 같은 클래스의 숫자형 배열로 반환됩니다.

최적화된 컬러맵으로, cx3 숫자형 배열로 반환됩니다.

  • 함수 imresize는 버전 5.4(R2007a)에서 변경되었습니다. 이전 버전의 Image Processing Toolbox™는 기본적으로 다른 알고리즘을 사용했습니다. 이전 구현에서 생성되는 것과 동일한 결과가 필요한 경우에는 함수 imresize_old를 사용하십시오.

  • CPU와 GPU에서 수행한 imresize 결과는 숫자상 차이가 조금 있습니다. 이러한 차이는 영상의 오른쪽 아래 테두리에서 발생하는데, 육안으로는 거의 식별되지 않습니다.

  • 출력 영상의 크기가 정수가 아닌 경우, imresize는 지정된 스케일을 사용하지 않습니다. 출력 영상 크기를 계산할 때 imresizeceil을 사용합니다.

확장 기능

R2006a 이전에 개발됨