이미지 데이터와 컬러맵 간의 관계
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