Предположительно на «цветное изображение» вы имеете в виду в RGB или полноцветные изображения (массив изображения с тремя цветовыми каналами). И то, что вы называете «Heatmap», - это colormap
, которое Matlab применяет по умолчанию к изображениям в оттенках серого (массивы изображений только с одним цветным каналом). Изображение в оттенках серого и цветная карта называются индексированным цветным изображением (подробнее об этом here). Вы можете использовать функцию ind2rgb
конвертировать из индексированных цветов в RGB:
IMG_gray = rand(100);
map = colormap; % Get the current colormap
IMG_rgb = ind2rgb(IMG_gray,map);
Обратите внимание, что по умолчанию в Matlab цветовые карты используются только 64 цветов довольно 256. Для того, чтобы получить более гладкие градации цвета вы можете установить цветовую палитру вручную через map = colormap(jet(256));
или map = colormap(hsv(256));
.
Если вы хотите получить файл изображения, вы можете использовать imwrite
, который может принимать как изображения RGB, так и индексированные цветные изображения с цветовыми картами в качестве входных данных.
Большое спасибо. Это очень полезно. понял. – user570593
'по умолчанию цветовые карты в Matlab используют только 64 цвета, а 256' Это, сэр, полезная информация. Благодаря! –
@Jigg: Я знаю. В 2014 году все! Надеюсь, они когда-нибудь изменят его. Возможно, когда будет выпущена новая [Handle Graphics 2] (http://undocumentedmatlab.com/blog/hg2-update/). – horchler