Matlab 用figure单独窗口和用subplot合并窗口展示索引图像结果不同问题

一副灰度图像,为了转换为彩色图像,需要自己设定颜色映射表

根据不同的转换公式,在完成转换图像后,输出彩色图像

由figure单独窗口显示输出图像和subplot合并窗口输出图像,结果不同

clc
clear all
close all


[image1, map1]=imread('panda.bmp');
image2=double(image1);


%%设定颜色映射表
map2=zeros(256,3);
map2(1:128,1)=0; 
map2(129:192,1)=4.*map1(129:192,1)-2;
map2(193:256,1)=1;

map2(1:64,2)=4.*map1(1:64,2);
map2(65:192,2)=1;
map2(193:256,2)=4-4.*map1(193:256,2);

map2(1:64,3)=1;
map2(65:128,3)=2-4.*map1(65:128,3);
map2(129:256,3)=0;

%%输出图像
%多个figure窗口输出
figure;imshow(image1);title('原图输出')
figure;imshow(image1,map2);title('按照新的索引表输出')
figure;imshow(image2);title('unit2double图输出')
%利用subplot合并窗口输出
figure
subplot(131);imshow(image1);title('原图输出')
subplot(132);imshow(image1,map2);title('按照新的索引表输出')
subplot(133);imshow(image2);title('unit2double图输出')

Matlab 用figure单独窗口和用subplot合并窗口展示索引图像结果不同问题_第1张图片

 

 

根据输出结果可见,figure2为转换后的彩色图像,但在subplot窗口中,无法显示出转换后的彩色图像。 

改进:将subplot中,imshow改为subimage

%利用subplot、subimage 合并窗口输出
figure
subplot(131);subimage(image1);title('原图输出')
subplot(132);subimage(image1,map2);title('按照新的索引表输出')
subplot(133);subimage(image2);title('unit2double图输出')

Matlab 用figure单独窗口和用subplot合并窗口展示索引图像结果不同问题_第2张图片

可以看到,灰度图像在subplot中能够按照转换后的彩色图像输出

 

你可能感兴趣的:(matlab,图像处理,计算机视觉)