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

image

배열로부터 이미지 표시

설명

예제

image(C)는 배열 C의 데이터를 이미지로 표시합니다. C의 각 요소는 이미지의 한 픽셀에 대한 색을 지정합니다. 결과 이미지는 mxn 그리드의 픽셀입니다. 여기서 mC의 행 개수이고 n은 열 개수입니다. 요소의 행과 열 인덱스에 따라 해당하는 픽셀의 중심이 결정됩니다.

예제

image(x,y,C)는 이미지 위치를 지정합니다. xy를 사용하여 C(1,1)C(m,n)에 해당하는 코너의 위치를 지정할 수 있습니다. 두 코너를 모두 지정하려면 xy를 요소를 2개 가진 벡터로 설정해야 합니다. 첫 번째 코너를 지정한 후 image에 의해 나머지 코너가 지정되도록 하려면 xy를 스칼라 값으로 설정하십시오. 이미지가 적절하게 늘어나고 방향이 설정됩니다.

image('CData',C)는 기존 플롯을 바꾸지 않고 현재 좌표축에 이미지를 추가합니다. 이 구문은 image(C)의 로우 레벨 버전입니다. 자세한 내용은 이미지의 하이 레벨 버전과 로우 레벨 버전 비교 항목을 참조하십시오.

image('XData',x,'YData',y,'CData',C)는 이미지 위치를 지정합니다. 이 구문은 image(x,y,C)의 로우 레벨 버전입니다.

예제

image(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 image 속성을 지정합니다. 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 image 속성을 지정할 수 있습니다.

image(ax,___)는 현재 좌표축(gca) 대신 ax로 지정된 좌표축에 이미지를 생성합니다. 옵션 ax는 위에 열거된 구문의 입력 인수 조합보다 먼저 나올 수 있습니다.

예제

im = image(___)은 만들어진 Image 객체를 반환합니다. im을 사용하면 이미지가 생성된 후에 이미지의 속성을 설정할 수 있습니다. 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 이 출력값을 지정할 수 있습니다. image 속성과 설명 목록을 보려면 Image 속성를 참조하십시오.

예제

모두 축소

행렬 C를 생성합니다. C의 데이터에 대한 이미지를 표시합니다. 컬러바를 그래프에 추가하여 현재 컬러맵을 표시합니다.

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(C)
colorbar

기본적으로, 이미지의 CDataMapping 속성은 'direct'로 설정되어 있으므로 imageC의 값을 컬러맵에 대한 인덱스로 해석합니다. 예를 들어, C의 마지막 요소인 22에 대응하는 오른쪽 맨 아래 픽셀은 컬러맵의 22번째 색을 사용합니다.

이미지를 만들 때 CDataMapping 속성을 'scaled'로 설정하면 현재 컬러맵의 전체 범위에 맞게 값을 스케일링할 수 있습니다.

image(C,'CDataMapping','scaled')
colorbar

또는 image(C,'CDataMapping','scaled')를 사용하는 대신 imagesc 함수를 사용하여 값을 스케일링할 수 있습니다. 예를 들어, imagesc(C)를 사용합니다.

이미지를 x축의 5와 8 사이, 그리고 y축의 3과 6 사이에 놓이도록 배치합니다.

x = [5 8];
y = [3 6];
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(x,y,C)

C(1,1)에 해당하는 픽셀은 점 (5,3)을 중심으로 합니다. C(3,4)에 대응하는 픽셀은 점 (8,6)을 중심으로 합니다. image는 이 두 점 사이에서 나머지 이미지의 위치와 방향을 지정합니다.

C를 트루컬러로 구성된 3차원 배열로 만듭니다. 배열의 마지막 두 페이지를 0으로 설정하여 빨간색만 사용합니다.

C = zeros(3,3,3);
C(:,:,1) = [.1 .2 .3; .4 .5 .6; .7 .8 .9]
C = 
C(:,:,1) =

    0.1000    0.2000    0.3000
    0.4000    0.5000    0.6000
    0.7000    0.8000    0.9000


C(:,:,2) =

     0     0     0
     0     0     0
     0     0     0


C(:,:,3) =

     0     0     0
     0     0     0
     0     0     0

C의 데이터에 대한 이미지를 표시합니다.

image(C)

선을 플로팅한 다음 선 위에 이미지를 생성합니다. image 객체를 반환합니다.

plot(1:3)
hold on
C = [1 2 3; 4 5 6; 7 8 9];
im = image(C);

이미지를 반투명하게 만들어 선이 이미지를 통과하여 표시되도록 합니다.

im.AlphaData = 0.5;

JPEG 이미지 파일을 읽어 들입니다.

C = imread('ngc6543a.jpg');

imread는 650x600x3 배열 C를 반환합니다.

이미지를 표시합니다.

image(C)

곡면 플롯을 만듭니다. 그런 다음, 곡면 아래에 이미지를 추가합니다. imagexy 평면에 이미지를 표시합니다.

Z = 10 + peaks;
surf(Z)
hold on 
image(Z,'CDataMapping','scaled')

입력 인수

모두 축소

이미지 색 데이터로, 다음 형식 중 하나로 지정됩니다.

  • 벡터 또는 행렬 — 이 형식은 인덱스 이미지 데이터를 정의합니다. C의 각 요소는 이미지의 한 픽셀에 대한 색을 정의합니다. 예를 들면 C = [1 2 3; 4 5 6; 7 8 9];와 같습니다. C의 요소는 연관 좌표축 컬러맵의 색에 매핑됩니다. CDataMapping 속성으로 매핑 방법을 제어합니다.

  • RGB 3색으로 구성된 3차원 배열 — 이 형식은 RGB 3색 값을 사용하여 트루컬러 이미지 데이터를 정의합니다. 각 RGB 3색은 이미지의 한 픽셀에 대한 색을 정의합니다. RGB 3색은 요소를 3개 가진 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 3차원 배열의 첫 페이지에는 빨간색 구성요소가 포함되고, 두 번째 페이지에는 녹색 구성요소가 포함되며, 세 번째 페이지에는 파란색 구성요소가 포함됩니다. 이미지는 컬러맵 색 대신 트루컬러를 사용하기 때문에 CDataMapping 속성은 아무 영향을 미치지 않습니다.

    • Cdouble형인 경우, RGB 3색 값 [0 0 0]은 검은색에 해당하고 [1 1 1]은 흰색에 해당합니다.

    • C가 정수형인 경우 이미지는 전체 데이터 범위를 사용하여 색을 지정합니다. 예를 들어, Cuint8형인 경우, [0 0 0]은 검은색에 해당하고 [255 255 255]는 흰색에 해당합니다. CDataint8형이면 [-128 -128 -128]이 검은색에 해당하고 [127 127 127]은 흰색에 해당합니다.

    • Clogical형이면 [0 0 0]은 검은색에 해당하고 [1 1 1]은 흰색에 해당합니다.

다음 그림은 두 가지 색상 모델에 대한 C의 상대적 크기를 보여줍니다.

NaN 요소의 동작은 정의되어 있지 않습니다.

image 함수의 로우 레벨 버전을 대신 사용하려면 CData 속성을 이름-값 쌍으로 설정하십시오. 예를 들면 image('CData',C)와 같습니다.

데이터형 간 변환

인덱스 이미지 데이터를 정수형에서 double형으로 변환하기 위해서는 1을 더해야 합니다. 예를 들어, X8uint8형의 인덱스 이미지 데이터인 경우 다음 식을 사용하여 double형으로 변환할 수 있습니다.

X64 = double(X8) + 1;

인덱스 이미지 데이터를 double형에서 정수형으로 변환하려면 1을 뺀 다음 round를 사용하여 모든 값이 정수가 되도록 해야 합니다. 예를 들어, X64double형의 인덱스 이미지 데이터인 경우 다음 식을 사용하여 uint8형으로 변환할 수 있습니다.

X8 = uint8(round(X64 - 1));

트루컬러 이미지 데이터를 정수형에서 double형으로 변환하려면 데이터를 다시 스케일링해야 합니다. 예를 들어, RGB8uint8형의 트루컬러 이미지 데이터인 경우 다음 식을 사용하여 double형으로 변환할 수 있습니다.

RGB64 = double(RGB8)/255;

트루컬러 이미지 데이터를 double형에서 정수형으로 변환하려면 데이터를 다시 스케일링한 다음 round를 사용하여 모든 값이 정수가 되도록 해야 합니다. 예를 들어, RGB64double형의 이미지 데이터인 경우 다음 식을 사용하여 uint8형으로 변환할 수 있습니다.

RGB8 = uint8(round(RGB64*255));

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

x축 상에서의 위치로, 다음 형식 중 하나로 지정됩니다.

  • 요소를 2개 가진 벡터 — 첫 번째 요소를 C(1,1)의 중심 위치로 사용하고 두 번째 요소를 C(m,n)의 중심 위치로 사용합니다. 여기서 [m,n] = size(C)입니다. C가 3차원 배열이면 mn은 처음 두 차원이 됩니다. C의 나머지 요소의 중심을 이 두 점 사이에 균일하게 분포시킵니다.

    각 픽셀의 너비는 다음 표현식으로 결정됩니다.

    (x(2)-x(1))/(size(C,2)-1)

    x(1) > x(2)이면 이미지의 좌우가 뒤집어집니다.

  • 스칼라 — C(1,1)의 중심을 이 위치에 지정하고, 그 다음 요소부터는 한 단위 간격으로 중심을 지정합니다.

image 함수의 로우 레벨 버전을 대신 사용하려면 XData 속성을 이름-값 쌍으로 설정하십시오. 예를 들면 image('XData',x,'YData',y,'CData',C)와 같습니다.

축 제한이 이미지 경계 바깥에 미리 설정되어 있지 않으면 이미지의 x축 제한 또는 y축 제한 바깥으로 확대/축소 또는 패닝을 대화형 방식으로 실행할 수 없습니다. 경계 바깥에 이미 제한이 설정되어 있으면 언제든 대화형 방식으로 확대/축소 또는 패닝을 할 수 있습니다. 다른 객체(예: line)가 좌표축을 차지하고 이미지의 경계를 넘어 확장하는 경우, 다른 객체의 경계까지 확대/축소나 패닝이 가능하지만 경계를 넘을 수는 없습니다.

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

y축 상에서의 위치로, 다음 형식 중 하나로 지정됩니다.

  • 요소를 2개 가진 벡터 — 첫 번째 요소를 C(1,1)의 중심 위치로 사용하고 두 번째 요소를 C(m,n)의 중심 위치로 사용합니다. 여기서 [m,n] = size(C)입니다. C가 3차원 배열이면 mn은 처음 두 차원이 됩니다. C의 나머지 요소의 중심을 이 두 점 사이에 균일하게 분포시킵니다.

    각 픽셀의 높이는 다음 표현식으로 결정됩니다.

    (y(2)-y(1))/(size(C,1)-1)

    y(1) > y(2)이면 이미지의 상하가 뒤집어집니다.

  • 스칼라 — C(1,1)의 중심을 이 위치에 지정하고, 그 다음 요소부터는 한 단위 간격으로 중심을 지정합니다.

image 함수의 로우 레벨 버전을 대신 사용하려면 YData 속성을 이름-값 쌍으로 설정하십시오. 예를 들면 image('XData',x,'YData',y,'CData',C)와 같습니다.

축 제한이 이미지 경계 바깥에 미리 설정되어 있지 않으면 이미지의 x축 제한 또는 y축 제한 바깥으로 확대/축소 또는 패닝을 대화형 방식으로 실행할 수 없습니다. 경계 바깥에 이미 제한이 설정되어 있으면 언제든 대화형 방식으로 확대/축소 또는 패닝을 할 수 있습니다. 다른 객체(예: line)가 좌표축을 차지하고 이미지의 경계를 넘어 확장하는 경우, 다른 객체의 경계까지 확대/축소나 패닝이 가능하지만 경계를 넘을 수는 없습니다.

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

Axes 객체. Axes 객체를 지정하지 않으면 image는 현재 좌표축을 사용합니다.

이름-값 쌍의 인수

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

예: image([1 2 3],'AlphaData',0.5)는 반투명 이미지를 표시합니다.

여기에 나와 있는 속성은 image 속성의 일부에 불과합니다. 전체 목록을 보려면 Image 속성를 참조하십시오.

색 데이터 매핑 방법으로, 'direct' 또는 'scaled'로 지정됩니다. 이 속성을 사용하여 CData의 색 데이터 값의 컬러맵 매핑을 제어합니다. CData는 인덱스 색상을 정의하는 벡터 또는 행렬이어야 합니다. CData가 트루컬러를 정의하는 3차원 배열이면 이 속성은 아무 영향을 미치지 않습니다.

각 방법은 다음과 같은 영향을 미칩니다.

  • 'direct' — 값을 현재 컬러맵에 대한 인덱스로 해석합니다. 소수부를 포함하는 값은 가장 가까운 더 작은 정수로 고정됩니다.

    • 값이 double형이거나 single형인 경우 1 또는 1보다 작은 값은 컬러맵의 첫 번째 색에 매핑됩니다. 컬러맵의 길이보다 크거나 같은 값은 컬러맵의 마지막 색에 매핑됩니다.

    • 값이 uint8형, uint16형, uint32형, uint64형, int8형, int16형, int32형, int64형 중 하나인 경우 0 또는 0 이하의 값은 컬러맵의 첫 번째 색에 매핑됩니다. 컬러맵의 길이보다 크거나 같은 값은 컬러맵의 마지막 색 또는 유형의 범위 제한에 매핑됩니다.

    • 값이 logical형인 경우 0 값은 컬러맵의 첫 번째 색에 매핑되고 1 값은 컬러맵의 두 번째 색에 매핑됩니다.

  • 'scaled' — 값을 최소 색 제한과 최대 색 제한 사이의 범위로 스케일링합니다. 좌표축의 CLim 속성에는 색 제한이 포함됩니다.

투명도 데이터로, 다음 형식 중 하나로 지정됩니다.

  • 스칼라 — 전체 이미지에 걸쳐 일관된 투명도를 사용합니다.

  • CData와 동일한 크기의 배열 — 각 이미지 요소에 대해 다른 투명도 값을 사용합니다.

AlphaDataMapping 속성은 MATLAB®이 알파 데이터 투명도 값을 해석하는 방법을 제어합니다.

예: 0.5

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

AlphaData 값의 해석 방식으로, 다음 값 중 하나로 지정됩니다.

  • 'none' — 값을 투명도 값으로 해석합니다. 1 이상의 값은 완전히 불투명하고, 0 이하의 값은 완전히 투명하며, 0과 1 사이의 값은 반투명합니다.

  • 'scaled' — 값을 Figure의 알파맵에 매핑합니다. 좌표축의 최소 알파 제한 및 최대 알파 제한에 따라 알파맵의 첫 번째 요소와 마지막 요소에 각각 매핑되는 알파 데이터 값이 결정됩니다. 예를 들어, 알파 제한이 [3 5]이면 3보다 작거나 같은 알파 데이터 값이 알파맵의 첫 번째 요소에 매핑됩니다. 5보다 크거나 같은 알파 데이터 값은 알파맵의 마지막 요소에 매핑됩니다. 좌표축의 ALim 속성에는 알파 제한이 포함됩니다. Figure의 Alphamap 속성에는 알파맵이 포함됩니다.

  • 'direct' — 값을 Figure의 알파맵에 대한 인덱스로 해석합니다. 소수부를 포함하는 값은 가장 가까운 더 작은 정수로 고정됩니다.

    • 값이 double형이거나 single형인 경우 1 이하의 값은 알파맵의 첫 번째 요소에 매핑됩니다. 알파맵의 길이보다 크거나 같은 값은 알파맵의 마지막 요소에 매핑됩니다.

    • 값이 정수형인 경우 0 이하의 값은 알파맵의 첫 번째 요소에 매핑됩니다. 알파맵의 길이보다 크거나 같은 값은 알파맵의 마지막 요소 또는 유형의 범위 제한에 매핑됩니다. 정수형은 uint8, uint16, uint32, uint64 , int8, int16, int32, int64입니다.

    • 값이 logical형인 경우 값 0은 알파맵의 첫 번째 요소에 매핑되고 값 1은 알파맵의 두 번째 요소에 매핑됩니다.

출력 인수

모두 축소

Image 객체로, 스칼라로 반환됩니다. im을 사용하면 이미지가 생성된 후에 이미지의 속성을 설정할 수 있습니다. 목록을 보려면 Image 속성를 참조하십시오.

세부 정보

모두 축소

이미지의 하이 레벨 버전과 로우 레벨 버전 비교

image 함수는 하이 레벨 버전과 로우 레벨 버전의 두 가지 버전이 있습니다. 'CData'를 입력 인수로 하여 image를 사용하면 로우 레벨 버전을 사용하는 것입니다. 그렇지 않으면 하이 레벨 버전을 사용하는 것입니다.

image의 하이 레벨 버전은 플로팅 전에 newplot을 호출하고 다음과 같은 axes 속성을 설정합니다.

  • Layer'top'으로 설정. 이미지가 눈금 또는 그리드 선 앞쪽에 표시됩니다.

  • YDir'reverse'로 설정. y축의 값이 위쪽에서 아래쪽으로 증가합니다. 값이 위쪽에서 아래쪽으로 감소하도록 하려면 YDir'normal'로 설정하십시오. 이 설정은 y축과 이미지를 모두 반대로 뒤집습니다.

  • View[0 90]으로 설정.

image 함수의 로우 레벨 버전은 newplot을 호출하지 않으며 위와 같은 axes 속성을 설정하지 않습니다.

  • TIFF와 같은 다양한 표준 형식의 그래픽스 파일의 이미지 데이터를 MATLAB으로 읽어 들이려면 imread를 사용하십시오. MATLAB 이미지 데이터를 그래픽스 파일에 쓰려면 imwrite를 사용하십시오. imread 함수와 imwrite 함수는 다양한 그래픽스 파일 형식과 압축 방식을 지원합니다.

확장 기능

참고 항목

함수

속성

R2006a 이전에 개발됨