이미지 데이터와 컬러맵 간의 관계
image 함수를 사용하여 이미지를 표시하는 경우, 픽셀 값 범위가 컬러맵 범위에 매핑되는 방법을 제어할 수 있습니다. 예를 들어, 다음은 디폴트 컬러맵을 사용하여 이미지로 표시된 5×5 마방진입니다.
A = magic(5)
A =
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
