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

이미지 데이터와 컬러맵 간의 관계

image 함수를 사용하여 이미지를 표시하는 경우, 픽셀 값 범위가 컬러맵 범위에 매핑되는 방법을 제어할 수 있습니다. 예를 들어, 다음은 디폴트 컬러맵을 사용하여 이미지로 표시된 5x5 마방진입니다.

A = magic(5) 
A = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

im = image(A);
axis off
colorbar

A는 1에서 25 사이의 값을 포함합니다. MATLAB®은 이러한 값을 컬러맵에 대한 인덱스로 처리합니다. 이 컬러맵에는 64개 항목이 있습니다. 따라서 앞에 나온 이미지 맵의 모든 픽셀은 컬러맵의 처음 25개 항목에 매핑됩니다(대략적으로 컬러바의 파란색 영역에 해당함).

Image 객체의 CDataMapping 속성을 사용하여 이러한 매핑을 제어할 수 있습니다. 위 다이어그램의 디폴트 동작은 이 속성에 대한 'direct' 옵션에 해당합니다. 직접 매핑은 자신만의 고유한 컬러맵이 포함된 이미지(예: GIF 이미지)를 표시할 때 유용합니다. 그러나 이미지가 물리적 단위(예: 미터, 도(Degree))의 측정값을 나타내는 경우 CDataMapping 속성을 'scaled'로 설정합니다. 스케일링된 매핑은 전체 색 범위를 사용하므로 이를 통해 데이터의 상대적 차이를 시각화할 수 있습니다.

im.CDataMapping = 'scaled';

'scaled' 옵션은 A의 가장 작은 값을 컬러맵의 첫 번째 항목에 매핑하고 A의 가장 큰 값을 컬러맵의 마지막 항목에 매핑합니다. A의 모든 중간값은 컬러맵으로 선형적으로 스케일링됩니다.

CDataMapping 속성을 'scaled'로 설정하는 대신, imagesc 함수를 호출하여 동일한 효과를 얻을 수 있습니다.

imagesc(A);
axis off
colorbar

컬러맵을 변경하는 경우 A의 값이 새로운 컬러맵으로 스케일링됩니다.

colormap(gray);

또한, 스케일링된 매핑은 컬러맵이 없는 그림 이미지를 표시하거나 그림 이미지의 컬러맵을 변경하려는 경우에도 유용합니다. 다음 명령은 gray 컬러맵을 사용하여 이미지를 표시합니다. 이는 이 이미지와 함께 저장된 원래 컬러맵과 다릅니다.

load clown
image(X,'CDataMapping','scaled');
colormap(gray);
axis off
colorbar

참고 항목

함수

속성

관련 항목