Matlab实现任意伪彩色图像可视化显示

发布于:2025-06-10 ⋅ 阅读:(22) ⋅ 点赞:(0)

Matlab实现任意伪彩色图像可视化显示

在科研研究中,如何展示好看的实验结果图像非常重要!!!

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,[]);

示例图像展示
在这里插入图片描述