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(Im,R)은 2차원 공간 참조 객체 R이 연결된 영상 Im을 표시합니다. 첫 번째 인수 Im은 회색조 영상 I, 트루컬러 영상 RGB, 이진 영상 BW 또는 이러한 유형을 가진 영상의 파일 이름 filename입니다.

imshow(X,R,map)은 2차원 공간 참조 객체 R과 컬러맵 map이 연결된 인덱스 영상 X를 표시합니다.

예제

모두 축소

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.

회색조 영상을 작업 공간으로 읽어 들입니다. 영상을 표시하고 imshow 함수에서 생성된 Image 객체를 가져옵니다.

I = imread("pout.tif");
hIm = imshow(I)

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

hIm = 
  Image with properties:

           CData: [291x240 uint8]
    CDataMapping: 'scaled'

  Use GET to show all properties

Image 객체의 XData 속성과 YData 속성을 표시합니다. 좌표축 제한이 영상의 공간 범위를 나타냅니다. 기본적으로 공간 범위는 영상의 크기와 같습니다.

spatialExtentIm = [hIm.XData; hIm.YData]
spatialExtentIm = 2×2

     1   240
     1   291

영상과 연결된 공간 참조 객체를 만듭니다. 그 참조 객체를 사용하여 세계 좌표계에서 x, y 좌표축 제한을 설정합니다.

RI = imref2d(size(I));
RI.XWorldLimits = [0 3];
RI.YWorldLimits = [2 5];

공간 참조 객체를 지정하여 영상을 표시합니다. imshow 함수에서 생성된 공간 참조 Image 객체를 가져옵니다.

hRef = imshow(I,RI);

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

공간 참조 Image 객체의 XData 속성과 YData 속성을 표시합니다. 이제 좌표축 제한이 공간 참조 객체로 지정된 세계 제한 내에 있습니다. hRef.XDataRI.XWorldLimits(href.YDataRI.YWorldLimits도 마찬가지) 사이에 차이가 발생합니다. 전자는 모서리 픽셀의 중심 간의 거리를 측정하지만 후자는 모서리 픽셀의 외부 경계선 간의 거리를 측정하기 때문입니다.

spatialExtentRef = [hRef.XData; hRef.YData]
spatialExtentRef = 2×2

    0.0063    2.9937
    2.0052    4.9948

입력 인수

모두 축소

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

데이터형: 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

입력 영상과 연결된 2차원 공간 참조 객체로, imref2d 객체로 지정됩니다.

이름-값 인수

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

예: imshow("board.tif",Border="tight")는 파일 이름이 board.tif인 영상을 Figure에 표시하며, Figure의 영상 주위에 공간을 두지 않습니다.

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

예: imshow("board.tif","Border","tight")는 파일 이름이 board.tif인 영상을 Figure에 표시하며, Figure의 영상 주위에 공간을 두지 않습니다.

Figure 창 테두리 공간으로, "tight" 또는 "loose"로 지정됩니다. "loose"로 설정된 경우 Figure 창은 Figure의 영상 주위에 공간을 표시합니다. "tight"로 설정된 경우 Figure 창은 Figure의 영상 주위에 어떤 공간도 표시하지 않습니다.

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

데이터형: char

좌표축의 컬러맵으로, [0, 1] 범위의 값으로 구성된 c×3 행렬로 지정됩니다. 행렬의 각 행은 컬러맵의 하나의 색에 대한 빨간색, 녹색, 파란색 성분을 지정하는, 요소를 3개 가진 RGB 3색입니다. 이 인수를 사용하여 회색조 영상을 가색상(false color)으로 볼 수 있습니다. 빈 컬러맵([])을 지정할 경우 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로 만들어진 좌표축 위에 좌표축을 만들 수 있습니다.

  • 영상을 표시하고 일반적인 영상 처리 작업을 수행하기 위한 통합 환경으로 영상 뷰어 앱을 사용할 수 있습니다.

  • iptsetpref 함수를 사용하여, imshow의 동작을 수정하는 Image Processing Toolbox™ 기본 설정을 지정할 수 있습니다.

  • -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 이전에 개발됨

모두 확장