Matab 灰度图 生成 伪彩色 图像 gray convert to pseudo color

Matab 灰度图 生成 伪彩色 图像  gray convert to pseudo color


原文出处: http://www.alecjacobson.com/weblog/?p=1655


In matlab you can view a grayscale image with:


imshow(im)

Which for my image im shows:
Matab 灰度图 生成 伪彩色 图像 gray convert to pseudo color_第1张图片
And you can also view this grayscale image using pseudocolors from a given colormap with something like:


imshow(im,'Colormap',jet(255))

Which shows:
Matab 灰度图 生成 伪彩色 图像 gray convert to pseudo color_第2张图片
But it’s not obvious how to use the colormap to actually retrieve the RGB values we see in the plot. Here’s a simple way to convert a grayscale image to a red, green, blue color image using a given colormap:


rgb = ind2rgb(gray2ind(im,255),jet(255));

Replace the 255 with the number of colors in your grayscale image. If you don’t know the number of colors in your grayscale image you can easily find out with:


n = size(unique(reshape(im,size(im,1)*size(im,2),size(im,3))),1);

It’s a little overly complicated to handle if im is already a RGB image.

If you don’t mind if the rgb image comes out as a uint8 rather than double you can use the following which is an order of magnitude faster:


rgb = label2rgb(gray2ind(im,255),jet(255));

Then with your colormaped image stored in rgb you can do anything you normally would with a rgb color image, like view it:


imshow(rgb);

which shows the same as above:
Matab 灰度图 生成 伪彩色 图像 gray convert to pseudo color_第3张图片


I = imread('G:\H1.png');
I = rgb2gray(I);
rgb = label2rgb(gray2ind(I, 255), jet(255));
imshow(rgb);



Matab 灰度图 生成 伪彩色 图像 gray convert to pseudo color_第4张图片

你可能感兴趣的:(Matlab)