2014-01-30 2 views
2

나는 grayscle 이미지가 있습니다. MATLAB에서 히트 맵을 만들려면 다음을 사용하십시오.히트 맵에서 이미지 색상으로 matlab

 I = imagesc(I); 

색상 값을 표시합니다. 이 히트 맵을 사용하여 컬러 이미지를 얻고 싶습니다. 내가 어떻게 해?

이 imagesc의 출력은 : This is the output of imagesc "컬러 화상"당신은 RGB 또는 트루 이미지 (세 개의 컬러 채널 화상 어레이)에 의해 아마도 의미

답변

5

. 그리고 "히트 맵"이라고 부르는 것은 입니다. Matlab은 기본적으로 그레이 스케일 이미지 (단 하나의 컬러 채널이있는 이미지 배열)에 적용됩니다. 그레이 스케일 이미지와 컬러 맵을 색인 된 컬러 이미지라고합니다 (자세한 내용은 here을 참조하십시오). 당신은 RGB로 인덱스 색상으로 변환 할 수 ind2rgb 기능을 사용할 수 있습니다 : 기본적으로 매트랩 색상 맵 당신이 map = colormap(jet(256)); 또는를 통해 수동으로 컬러 맵을 설정할 수 있습니다 부드러운 컬러 그라데이션을 얻으려면 64 색상 대신 256을 사용

IMG_gray = rand(100); 
map = colormap; % Get the current colormap 
IMG_rgb = ind2rgb(IMG_gray,map); 

하는 것으로 map = colormap(hsv(256));.

이미지 파일을 원할 경우 imwrite을 사용할 수 있습니다.이 이미지는 RGB 이미지 또는 색상 맵을 입력으로 사용하여 색인 된 색상 이미지를 사용할 수 있습니다. imagesc 같은 이미지의 강도 값을 수행하고, 컬러 맵을 사용

+0

가 대단히 감사합니다. 그것은 매우 유용합니다. 알았다. – user570593

+0

'기본적으로 Matlab의 색상 표는 64 색 대신 256 색을 사용합니다. 유용한 정보입니다. 감사! –

+1

@Jigg : 알아. 결국 2014 년입니다! 잘만되면 그들은 언젠가 그것을 바꿀 것이다. 어쩌면 새로운 [Handle Graphics 2] (http://undocumentedmatlab.com/blog/hg2-update/)가 발표되었을 때입니다. – horchler

3

스케일 (jet은 기본값) :

N = 256; 
IN = round(N * (I-min(I(:)))/(max(I(:))-min(I(:)))); 
cmap = jet(N); % see also hot, etc. 
IRGB = ind2rgb(IN,cmap); 
+0

고맙습니다. 알았다. – user570593