imresize
이미지 크기 조정
구문
설명
는 요소를 2개 가진 벡터 B
= imresize(A
,[numrows numcols]
)[numrows numcols]
에서 지정한 행 개수와 열 개수를 가지는 이미지 B
를 반환합니다.
___ = imresize(___,
는 이름-값 인수에 의해 크기 조정 작업의 여러 측면이 제어된 크기 조정 이미지를 반환합니다. 다른 모든 입력 인수 다음에 이름-값 인수를 지정합니다.Name,Value
)
예제
디폴트 보간 방법을 사용하여 2배만큼 이미지 축소하기
이미지를 작업 공간에 불러옵니다.
I = imread('ngc6543a.jpg');
2배만큼 이미지를 축소합니다.
J = imresize(I, 0.5);
원래 이미지와 크기 조정된 이미지를 표시합니다.
figure, imshow(I), figure, imshow(J)
최근접이웃 보간을 사용하여 이미지 축소하기
이미지를 작업 공간에 불러옵니다.
I = imread('ngc6543a.jpg');
최근접이웃 보간을 사용하여 이미지를 원래 크기의 40%까지 축소합니다. 이것은 가장 빠른 방법이지만, 품질은 가장 낮습니다.
J = imresize(I,0.4,'nearest');
원래 이미지와 크기 조정된 이미지를 표시합니다.
imshow(I)
title('Original Image')
imshow(J)
title('Resized Image Using Nearest Neighbor Interpolation')
출력 이미지의 크기를 지정하여 RGB 이미지의 크기 조정하기
RGB 이미지를 작업 공간으로 읽어 옵니다.
RGB = imread('peppers.png');
RGB 이미지의 크기를 64개 행이 포함되도록 조정합니다. imresize
는 열 개수를 자동으로 계산합니다.
RGB2 = imresize(RGB,[64 NaN]);
크기가 조정된 이미지의 크기를 가져옵니다.
sz = size(RGB2)
sz = 1×3
64 86 3
원래 이미지와 크기 조정된 이미지를 표시합니다.
imshow(RGB)
title("Original Image")
imshow(RGB2)
title("Resized Image with 64 Rows")
인덱스 이미지 크기 조정하기
인덱스 이미지를 작업 공간으로 읽어 들입니다.
[X,map] = imread("corn.tif");
인덱스 이미지의 크기를 50% 늘립니다.
[Y,newmap] = imresize(X,map,1.5);
원래 이미지와 크기 조정된 이미지를 표시합니다.
imshow(X,map)
title("Original Indexed Image and Colormap")
imshow(Y,newmap)
title("Resized Image and Optimized Colormap")
입력 인수
A
— 크기 조정할 이미지
숫자형 배열 | 논리형 배열 | categorical형 배열
크기를 조정할 이미지로, 임의의 차원의 숫자형 배열, 논리형 배열 또는 categorical형 배열로 지정됩니다. 입력값은 비희소 형식이어야 하고 숫자형 입력값은 실수여야 합니다.
데이터형: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
| categorical
scale
— 크기 조정 인자
양수
크기 조정 인자로, 양수로 지정됩니다. imresize
는 동일한 스케일링 인자를 행 및 열 차원에 적용합니다. 각 차원에 크기 조정 인자를 다르게 적용하려면 Scale
이름-값 인수를 사용하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
[numrows numcols]
— 출력 이미지의 행 및 열 차원
양수로 구성된 요소를 2개 가진 벡터
출력 이미지의 행 및 열 차원으로, 양수로 구성된 요소를 2개 가진 벡터로 지정됩니다. numrows
또는 numcols
중 하나에 NaN
값을 지정할 수 있습니다. 이 경우 imresize
는 해당 차원에 대해 행 또는 열 개수를 자동으로 계산하여 이미지 종횡비를 유지합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
X
— 크기 조정할 인덱스 이미지
비희소 형식의 실수 숫자형 배열
크기 조정할 인덱스 이미지로, 양의 정수로 구성된 비희소 형식의 실수 숫자형 배열로 지정됩니다.
데이터형: double
| uint8
| uint16
map
— 인덱스 이미지와 연결된 컬러맵
c×3 숫자형 행렬
인덱스 이미지 X
와 연결된 컬러맵으로, 값이 [0, 1] 범위에 있는 c×3 숫자형 행렬로 지정됩니다. 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다.
데이터형: double
method
— 보간 방법
문자형 벡터 | string형 스칼라 | 요소를 2개 가진 셀형 배열
보간 방법으로, 문자형 벡터, string형 스칼라 또는 요소를 2개 가진 셀형 배열로 지정됩니다. 숫자형 및 논리형 이미지의 디폴트 값은 "bicubic"
입니다. 범주 영상의 디폴트 값은 "nearest"
입니다. 범주 영상의 값 "nearest"
와 "box"
만 지원합니다.
method
가 문자형 벡터이거나 string형 스칼라일 경우 다음 표에 나열된 특정 방법 또는 명명된 보간 커널이 사용됩니다.
방법 | 설명 |
---|---|
| 최근접이웃 보간으로, 점이 속하는 픽셀 값이 출력 픽셀에 할당됩니다. 다른 픽셀은 고려되지 않습니다. |
| 쌍선형 보간으로, 출력 픽셀 값은 최근접 2×2 이웃 픽셀의 가중 평균입니다. |
| 쌍삼차 보간으로, 출력 픽셀 값은 최근접 4×4 이웃 픽셀의 가중 평균입니다. 참고 쌍삼차 보간은 원래 범위를 벗어나는 픽셀 값을 생성할 수 있습니다. |
보간 커널 | 설명 |
"box" | 상자 형태 커널 |
"triangle" | 삼각 커널("bilinear" 와 동일) |
"cubic" | 3차 커널("bicubic" 과 동일) |
"lanczos2" | 란초스-2 커널 |
"lanczos3" | 란초스-3 커널 |
method
가 요소를 2개 가진 셀형 배열이면 이에 의해 사용자 지정 보간 커널이 정의됩니다. 셀형 배열은 {f,w} 형식을 가집니다. 여기서, f는 사용자 지정 보간 커널의 함수 핸들이고 w는 사용자 지정 커널의 너비입니다. f(x)는 구간 -w/2 <= x < w/2 밖에서 0이어야 합니다. 함수 핸들 f에 스칼라 또는 벡터 입력을 함께 호출할 수 있습니다. 사용자 지정 보간 커널의 경우, 출력 이미지의 일부 값은 입력 이미지의 픽셀 범위를 약간 벗어날 수 있습니다.
내장 보간 커널 및 사용자 지정 보간 커널에 대한 자세한 내용은 Create and Compare Resizing Interpolation Kernels 항목을 참조하십시오.
데이터형: char
| string
| cell
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
예: B = imresize(A,0.5,Antialiasing=false)
는 이미지를 축소할 때 안티에일리어싱을 수행하지 않습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: B = imresize(A,0.5,"Antialiasing",false)
는 이미지를 축소할 때 안티에일리어싱을 수행하지 않습니다.
Antialiasing
— 이미지 축소 시 안티에일리어싱 수행 여부
true
| false
이미지 축소 시 안티에일리어싱 수행 여부로, true
또는 false
로 지정됩니다.
보간
method
가"nearest"
이면Antialiasing
의 디폴트 값은false
입니다.보간
method
가"box"
이고 입력 이미지가 범주형이면Antialiasing
의 디폴트 값은false
입니다.다른 모든 보간 방법에 대해서는 디폴트 값이
true
입니다.
데이터형: logical
Dither
— 색 디더링 수행 여부
true
(디폴트 값) | false
색 디더링 수행 여부로, true
또는 false
로 지정됩니다. 디더링에서는 이미지에 잡음 형태를 적용하여 양자화 오차를 무작위화하고 대규모 패턴을 방지합니다.
Dither
인수는 인덱스 이미지의 크기를 조정하는 경우에만 유효합니다.
데이터형: logical
Method
— 보간 방법
문자형 벡터 | string형 스칼라 | 셀형 배열
보간 방법으로, 문자형 벡터, string형 스칼라 또는 요소를 2개 가진 셀형 배열로 지정됩니다. 자세한 내용은 method
를 참조하십시오.
데이터형: char
| string
| cell
OutputSize
— 출력 이미지의 크기
양수로 구성된 요소를 2개 가진 벡터
출력 이미지의 크기로, 양수로 구성된 요소를 2개 가진 벡터로 지정됩니다. 자세한 내용은 [numrows numcols]
를 참조하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Scale
— 크기 조정 스케일링 인자
양수 | 양수로 구성된 요소를 2개 가진 벡터
크기 조정 스케일링 인자로, 양수 하나로 지정되거나 양수로 구성된 요소를 2개 가진 벡터로 지정됩니다. 스칼라를 지정할 경우 imresize
는 동일한 스케일링 인자를 행 및 열 차원에 적용합니다. 요소를 2개 가진 벡터를 지정하면 imresize
는 다른 스케일링 값을 각 차원에 적용합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
출력 인수
B
— 크기 조정된 이미지
숫자형 배열 | 논리형 배열 | categorical형 배열
크기가 조정된 이미지로, 입력 이미지 A
와 동일한 데이터형의 숫자형 배열, 논리형 배열 또는 categorical형 배열로 반환됩니다.
Y
— 크기 조정된 인덱스 이미지
숫자형 배열
크기가 조정된 인덱스 이미지로, 입력 인덱스 이미지 X
와 동일한 데이터형의 숫자형 배열로 반환됩니다.
newmap
— 크기가 조정된 인덱스 이미지의 컬러맵
m×3 숫자형 행렬
크기가 조정된 인덱스 이미지 Y
의 컬러맵으로, m×3 숫자형 행렬로 반환됩니다. 기본적으로, imresize
는 크기가 조정된 이미지와 함께 새로 최적화된 컬러맵을 반환합니다. 원래 컬러맵과 동일한 컬러맵을 반환하려면 "Colormap"
이름-값 인수를 사용하십시오.
팁
출력 이미지의 크기가 정수가 아닌 경우,
imresize
는 지정된 스케일을 사용하지 않습니다. 출력 이미지 크기를 계산할 때imresize
는ceil
함수를 사용합니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
이름-값 인수
Colormap
과Dither
를 포함해 인덱스 이미지를 지원하는 구문은 지원되지 않습니다.사용자 지정 보간 커널은 지원되지 않습니다.
모든 이름-값 인수는 컴파일타임 상수여야 합니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
Colormap
및Dither
이름-값 인수는 지원되지 않습니다.인덱스 이미지는 지원되지 않습니다.
사용자 지정 보간 커널은 지원되지 않습니다.
모든 이름-값 쌍은 컴파일타임 상수여야 합니다.
일부 보간 커널의 경우 MATLAB® 결과와 생성된 코드 사이에 약간의 수치적 불일치가 있을 수 있습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
요소 개수가 227개를 넘어가는
gpuArray
입력값은 지원되지 않습니다.gpuArray
입력값은 비희소 형식이어야 합니다.기본 유형이
categorical
형인gpuArray
입력값은 지원되지 않습니다.인덱스 이미지는 GPU에서 지원되지 않습니다.
쌍삼차 보간을 사용하는 경우, 출력 이미지의 일부 값은 입력 이미지의 픽셀 범위를 약간 벗어날 수 있습니다.
CPU와 GPU에서 수행한
imresize
결과는 숫자상 차이가 조금 있습니다. 이러한 차이는 이미지의 오른쪽 아래 테두리에서 발생하는데, 육안으로는 거의 식별되지 않습니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨R2019a: 범주 영상 지원
imresize
함수는 이제 범주 영상을 지원합니다.
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)