Main Content

imshow

설명

예제

imshow(I)는 Figure에 회색조 이미지 I를 표시합니다. imshow는 이미지 데이터형에 대한 디폴트 표시 범위를 사용하고 이미지 표시를 위해 figure, axes 및 image 객체 속성을 최적화합니다.

imshow(I,[low high])는 디스플레이 범위를 요소를 2개 가진 벡터 [low high]로 지정하여 회색조 이미지 I를 표시합니다. 자세한 내용은 DisplayRange 인수를 참조하십시오.

예제

imshow(I,[])I의 픽셀 값 범위에 따라 디스플레이를 스케일링하여 회색조 이미지 I를 표시합니다. imshow[min(I(:)) max(I(:))]를 표시 범위로 사용합니다. imshowI의 최솟값을 검은색으로 표시하고, 최댓값을 흰색으로 표시합니다. 자세한 내용은 DisplayRange 인수를 참조하십시오.

예제

imshow(RGB)는 Figure에 트루컬러 이미지 RGB를 표시합니다.

예제

imshow(BW)는 Figure에 이진 이미지 BW를 표시합니다. 이진 이미지의 경우 imshow는 값 0(영)을 갖는 픽셀을 검은색으로 표시하고, 값 1을 갖는 픽셀을 흰색으로 표시합니다.

예제

imshow(X,map)은 컬러맵 map을 사용하여 인덱스 이미지 X를 표시합니다.

예제

imshow(filename)filename으로 지정된 그래픽스 파일에 저장된 이미지를 표시합니다.

imshow(___,Name=Value)는 이름-값 인수를 사용하여 작업의 여러 면을 제어하면서 이미지를 표시합니다.

himage = imshow(___)imshow에서 생성된 image 객체를 반환합니다.

예제

모두 축소

imshow 함수를 사용하여 RGB(트루컬러) 이미지, 회색조 이미지, 이진 이미지 또는 인덱스 이미지를 표시합니다.

RGB 이미지 표시하기

샘플 RGB 이미지 peppers.png를 MATLAB® 작업 공간으로 읽어옵니다.

rgbImage = imread("peppers.png");

imshow를 사용하여 RGB 이미지를 표시합니다.

imshow(rgbImage)

Figure contains an axes object. The axes object contains an object of type image.

회색조 이미지 표시하기

im2gray 함수를 사용하여 RGB 이미지를 회색조 이미지로 변환합니다.

grayImage = im2gray(rgbImage);

imshow를 사용하여 회색조 이미지를 표시합니다.

imshow(grayImage)

Figure contains an axes object. The axes object contains an object of type image.

이진 이미지 표시하기

이진화를 사용하여 회색조 이미지를 이진 이미지로 변환합니다.

meanVal = mean(grayImage,"all");
binaryImage = grayImage >= meanVal;

imshow를 사용하여 이진 이미지를 표시합니다.

imshow(binaryImage)

Figure contains an axes object. The axes object contains an object of type image.

인덱스 이미지 표시하기

샘플 인덱스 이미지 corn.tif를 MATLAB 작업 공간으로 읽어 옵니다.

[corn_indexed,map] = imread("corn.tif");

imshow를 사용하여 인덱스 이미지를 표시합니다.

imshow(corn_indexed,map)

Figure contains an axes object. The axes object contains an object of type image.

파일에 저장된 이미지를 표시합니다.

filename = "peppers.png";
imshow(filename)

Figure contains an axes object. The axes object contains an object of type image.

샘플 회색조 볼륨 이미지 mri.mat를 작업 공간의 변수 D로 불러옵니다. squeeze 함수를 사용하여 볼륨의 한원소 차원을 제거합니다.

load("mri.mat");
vol = squeeze(D);

볼륨의 중간에서 슬라이스를 선택합니다. copper 컬러맵을 사용하고 표시 범위를 픽셀 값의 범위로 스케일링하여 슬라이스를 표시합니다.

sliceZ = vol(:,:,13);
imshow(sliceZ,[],Colormap=copper)

Figure contains an axes object. The axes object contains an object of type image.

colormap 함수를 사용하여 이미지의 컬러맵을 변경합니다.

colormap(hot)

Figure contains an axes object. The axes object contains an object of type image.

트루컬러(RGB) 이미지를 작업 공간으로 읽어 들입니다. 이미지의 데이터형은 uint8입니다.

RGB = imread("peppers.png");

이미지에서 녹색 채널을 추출합니다. 녹색 채널은 두 번째 색 평면입니다.

G = RGB(:,:,2);
imshow(G)

Figure contains an axes object. The axes object contains an object of type image.

이미지에서 가로 방향 경계를 검출하는 필터를 만듭니다.

filt = [-1 -1 -1; 0 0 0; 1 1 1];

filter2 함수를 사용하여 이미지의 녹색 채널을 필터링합니다. 결과는 최솟값이 -422이고 최댓값이 656인 double 데이터형의 이미지입니다. 필터링된 이미지에서 크기가 큰 픽셀은 강한 경계를 나타냅니다.

edgeG = filter2(filt,G);

필터링된 이미지를 imshow를 사용하여 디폴트 표시 범위로 표시합니다. double 데이터형 이미지의 디폴트 표시 범위는 [0, 1]입니다. 필터링된 픽셀 값이 범위 [0, 1]을 초과하므로 이미지가 흑백으로 나타납니다.

imshow(edgeG)

Figure contains an axes object. The axes object contains an object of type image.

필터링된 이미지를 표시하고 표시 범위를 이미지의 픽셀 값으로 스케일링합니다. 이미지가 회색조 값의 전체 범위로 표시됩니다.

imshow(edgeG,[])

Figure contains an axes object. The axes object contains an object of type image.

corn.tif 파일에서 작업 공간으로 회색조 이미지를 읽어 들입니다. 이 회색조 이미지는 파일의 두 번째 이미지입니다.

corn_gray = imread("corn.tif",2);

이미지의 한 작은 부분을 선택합니다. imshow를 사용하여 상세 이미지를 100% 배율로 표시합니다.

corn_detail = corn_gray(1:100,1:100);
imshow(corn_detail)

Figure contains an axes object. The axes object contains an object of type image.

InitialMagnification 이름-값 인수를 사용하여 이미지를 1000% 배율로 표시합니다. 기본적으로 imshow는 픽셀 값의 최근접이웃 보간을 수행합니다. 이미지에 블로킹 아티팩트가 있습니다.

imshow(corn_detail,InitialMagnification=1000)

Figure contains an axes object. The axes object contains an object of type image.

쌍선형 보간 기법을 지정하여 이미지를 1000% 배율로 표시합니다. 이미지가 더 부드럽게 표시됩니다.

imshow(corn_detail,InitialMagnification=1000,Interpolation="bilinear")

Figure contains an axes object. The axes object contains an object of type image.

입력 인수

모두 축소

회색조 이미지로, 행렬로 지정됩니다. 회색조 이미지는 임의의 숫자 데이터형일 수 있습니다.

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

트루컬러 이미지로, m×n×3 배열로 지정됩니다.

데이터형이 single형 또는 double형인 트루컬러 이미지를 지정할 경우 값은 [0, 1] 범위에 있어야 합니다. 픽셀 값이 이 범위 밖에 있는 경우 rescale 함수를 사용하여 픽셀 값을 [0, 1] 범위로 스케일링할 수 있습니다. 입력 이미지가 트루컬러이면 DisplayRange 인수는 영향을 미치지 않습니다.

데이터형: single | double | uint8 | uint16

이진 이미지로, 행렬로 지정됩니다.

데이터형: logical

인덱스 이미지로, 양의 정수로 구성된 2차원 행렬로 지정됩니다. X의 값은 map으로 지정된 컬러맵에 대한 인덱스입니다.

데이터형: single | double | uint8 | logical

인덱스 이미지 X와 연결된 컬러맵으로, c×3 행렬로 지정됩니다. map의 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다. map의 데이터형이 single 또는 double일 때, 행렬 값의 범위는 [0, 1]입니다.

데이터형: single | double | uint8

파일 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. imread 함수로 읽을 수 있는 이미지여야 합니다. imshow 함수는 이미지를 표시하지만, 이미지 데이터를 MATLAB® 작업 공간에 저장하지 않습니다. 파일에 여러 개의 이미지가 포함된 경우 imshow는 파일의 첫 번째 이미지를 표시합니다.

예: "peppers.png"

데이터형: string | char

회색조 이미지 디스플레이 범위로, 요소를 2개 가진 벡터로 지정됩니다. 자세한 내용은 DisplayRange 이름- 값 인수를 참조하십시오.

예: [50 250]

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

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: imshow("board.tif",Border="tight")는 파일 이름이 board.tif인 이미지를 표시하되 Figure에서 이미지 주위의 공간을 포함하지 않습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: imshow("board.tif","Border","tight")는 파일 이름이 board.tif인 이미지를 표시하되 Figure에서 이미지 주위의 공간을 포함하지 않습니다.

Figure 창 테두리 공간으로, "tight" 또는 "loose"로 지정됩니다. "loose"로 설정된 경우 Figure 창은 Figure에서 이미지 주위의 공간을 포함합니다. "tight"로 설정된 경우 Figure 창은 Figure에서 이미지 주위의 공간을 포함하지 않습니다.

이미지가 매우 작거나 Figure에 image와 해당 axes 외에 다른 객체가 포함된 경우 imshow는 이 인수가 어떻게 설정되었는지에 관계없이 테두리를 사용할 수 있습니다.

데이터형: char

좌표축의 컬러맵으로, 범위 [0, 1]의 값으로 구성된 c×3 행렬로 지정됩니다. 행렬의 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다. 이 인수를 사용하여 회색조 이미지를 가색상으로 볼 수 있습니다. 빈 컬러맵([])을 지정할 경우 imshow 함수는 이 인수를 무시합니다.

예: cmap = copper; imshow("board.tif",Colormap=cmap)

데이터형: double

회색조 이미지 디스플레이 범위로, [low high] 형식의, 요소를 2개 가진 벡터로 지정됩니다. imshow 함수는 값 lowlow보다 작은 값을 검은색으로 표시하고, 값 highhigh보다 큰 값을 흰색으로 표시합니다. lowhigh 사이의 값은 디폴트 회색 레벨을 사용하여 중간 회색 음영으로 표시됩니다.

빈 행렬([])을 지정할 경우 imshow는 표시 범위 [min(I(:)) max(I(:))]를 사용합니다. 즉, I의 최솟값은 검은색이고, 최댓값은 흰색입니다.

표시 범위를 지정하지 않을 경우 imshow는 이미지 데이터형을 기준으로 디폴트 표시 범위를 선택합니다.

  • I가 정수형이면 DisplayRange는 기본적으로 이 정수형의 표현 가능한 최솟값과 최댓값으로 설정됩니다. 예를 들어, uint16형 배열의 디폴트 표시 범위는 [0, 65535]입니다.

  • I의 데이터형이 single형 또는 double형이면 디폴트 표시 범위는 [0, 1]입니다.

참고

이미지가 파일 이름으로 지정된 경우를 제외하고, 인수 이름을 포함하는 것은 선택 사항입니다. 구문 imshow(I,[low high])imshow(I,DisplayRange=[low high])와 동일합니다. imshow를 파일 이름과 함께 호출할 경우에는 DisplayRange 이름-값 인수를 지정해야 합니다.

예: DisplayRange=[10 250]

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

이미지 디스플레이의 초기 배율로, 숫자형 스칼라 또는 "fit"으로 지정됩니다. 100으로 설정된 경우 imshow는 이미지를 100% 배율(각 이미지 픽셀당 하나의 화면 픽셀)로 표시합니다. "fit"으로 설정된 경우 imshow는 전체 이미지를 창에 맞게 스케일링합니다.

imshow는 처음에 지정된 배율로 전체 이미지를 표시하려고 시도합니다. 배율 값이 너무 커서 이미지가 화면에 표시할 수 없을 정도로 크다면 imshow는 화면에 맞는 가장 큰 배율로 이미지를 표시합니다.

WindowStyle 속성이 "docked"로 설정된 Figure에 이미지가 표시되는 경우 imshow는 Figure에 맞는 가장 큰 배율로 이미지를 표시합니다.

참고: 좌표축 위치를 지정할 경우 imshow는 (사용자가 지정했을 수도 있는) 초기 배율을 무시하고 기본적으로 "fit" 동작으로 설정됩니다.

imshowReduce 이름-값 인수와 함께 사용할 경우 초기 배율은 "fit"이어야 합니다.

MATLAB Online™에서는 InitialMagnification"fit"으로 설정되며 이 값은 변경할 수 없습니다.

예: InitialMagnification=80

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

보간 방법으로, "nearest" 또는 "bilinear"로 지정됩니다. MATLAB에서는 보간을 사용하여 스케일링된 버전의 이미지를 화면에 표시합니다. 선택한 값은 이미지 데이터에 영향을 주지 않습니다. 이미지 내용 및 얻고자 하는 효과를 기준으로 보간 방법을 선택하십시오.

  • "nearest" — 최근접이웃 보간. (x, y)에 위치한 픽셀의 값은 원본 이미지에서 (x, y)에 가장 가까운 픽셀의 값입니다. 이 방법은 서로 다른 범주를 나타내는 적은 수의 픽셀 값이 있거나 크게 확대된 보기에서 개별적인 픽셀을 보고 싶을 때 가장 적합합니다.

  • "bilinear" — 쌍선형 보간. (x, y)에 위치한 픽셀의 값은 원본 이미지에서 주변 픽셀의 가중 평균입니다. 디스플레이 아티팩트를 최소화하기 위해 imshow 함수는 이미지를 축소할 때 안티에일리어싱을 수행합니다. 이 방법은 그 밖의 거의 모든 상황에 적합합니다.

image 객체의 부모 axes로, Axes 객체 또는 UIAxes 객체로 지정됩니다. Parent 이름-값 인수를 사용하여, FigureAxes 속성을 제어할 수 있는 UI를 작성합니다.

서브샘플링 이미지에 대한 표시자로, 숫자형 또는 논리값 true(1) 또는 false(0)로 지정됩니다. 이 인수는 TIFF 파일의 이름과 함께 사용할 경우에만 유효합니다. Reduce 인수를 사용하면 매우 큰 이미지를 개략적으로 표시할 수 있습니다.

데이터형: logical

디폴트가 아닌 좌표계의 x축 제한으로, 요소를 2개 가진 벡터로 지정됩니다. 이 인수는 이미지 XData를 지정하여 디폴트가 아닌 공간 좌표계를 설정합니다. 값은 3개 이상의 요소를 가질 수 있지만, imshow는 첫 번째 요소와 마지막 요소만 사용합니다.

예: XData=[100 200]

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

디폴트가 아닌 좌표계의 y축 제한으로, 요소를 2개 가진 벡터로 지정됩니다. 값은 3개 이상의 요소를 가질 수 있지만, imshow는 첫 번째 요소와 마지막 요소만 사용합니다.

예: YData=[100 200]

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

출력 인수

모두 축소

imshow 함수에서 생성된 이미지로, image 객체로 지정됩니다.

  • 이미지를 생성한 후 컬러맵을 변경하려면 colormap 명령을 사용하십시오.

  • imshowtiledlayout 함수 및 nexttile 함수와 함께 사용하여 서로 다른 컬러맵을 사용하는 여러 이미지를 같은 Figure에 표시할 수 있습니다.

  • imshow를 호출한 후에 hold on 명령을 사용하여, imshow로 만들어진 좌표축 위에 좌표축을 만들 수 있습니다.

  • -nojvm 옵션을 사용하여 MATLAB을 시작할 경우에는 imshow 함수가 지원되지 않습니다.

  • Figure 제목이 라이브 편집기에서 잘려 보일 수 있습니다. 전체 제목을 보이게 하려면 부모 axes 객체의 PositionContraint 속성을 "outerposition"으로 설정하십시오. 이 속성값은 imshow 함수를 실행한 후 title 함수 실행 전에 업데이트하십시오.

    I = imread("peppers.png");
    imshow(I)
    ax = gca;
    ax.PositionConstraint = "outerposition";
    title("Peppers");
    Parent 이름-값 인수를 사용하여 부모 좌표축을 지정하는 경우 지정된 부모 axes 객체의 PositionConstraint 속성을 설정하십시오. 좌표축 위치 속성에 대한 자세한 내용은 좌표축 레이아웃 제어하기 항목을 참조하십시오.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | | | |

도움말 항목