Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示
- 1、灰度原始图像
- 2、RGB彩色原始图像
在科研研究中,如何展示好看的实验结果图像非常重要!!!
1、灰度原始图像
灰度图像每个像素点只有一个数值,代表该点的亮度(或灰度)信息。
% 颜色map, 256个颜色点的colormap
num=256;
imgIndex=1;
% 表示颜色从黑色到蓝色的映射
key_colors = [0 0 0; 0 0 1];
path='D:\ImageFolder';
imagepath=strcat(path,'\image.tif');
% 读取图像
% 如果图像是以stack形式保存,imgIndex用于表示读取哪一帧图像
Img=imread(imagepath,imgIndex);
% 图像归一化处理
Img= double(Img) / double(max(Img(:)));
% 插值建立从黑色到蓝色的颜色映射
cmap = interp1(linspace(1,num,2)', key_colors, 1:num);
mapped_img = ind2rgb(im2uint8(Img), cmap);
figure();
subplot(121);
imshow(Img,[]);
subplot(122);
imshow(mapped_img,[]);
示例图像展示
2、RGB彩色原始图像
RGB彩色图像每个像素点由三个分量(通道) 组成:红色分量、绿色分量和蓝色分量。每个分量也是一个数值,代表该颜色通道的强度,任何颜色都能够用这三个分量不同比重组合表示出来。RGB彩色图像本身就
% 图片读取方式同灰度图像读取一样
% 将RGB转HSV(Hue 色调更能区分颜色),可以用于提取彩色图像本身带有的一些颜色
hsv_img = rgb2hsv(Img);
H = hsv_img(:,:,1); % 色调
S = hsv_img(:,:,2); % 饱和度
V = hsv_img(:,:,3); % 亮度
% 提取灰度图作为背景蓝色映射源
gray_img = rgb2gray(Img); % 或用V通道也可
% 目标颜色使用归一化的RGB值 [R, G, B](范围0-1)
target_color = [0.9, 0.4, 0.1]; % 示例:橙色,可任意修改
blue_pseudo = zeros(size(Img));
for k = 1:3% 将灰度值按比例映射到目标颜色的每个通道pseudo_img(:,:,k) = gray_img * target_color(k);
end
figure();
subplot(121);
imshow(Img,[]);
subplot(122);
imshow(pseudo_img,[]);
示例图像展示