%
非窗口模式假彩色
source_RGB=imread('template_RGB.jpg'); subplot(2,2,2);
imshow(source_RGB);
title('template RGB');
source_gray=imread('template_gray.jpg'); subplot(2,2,1);
imshow(source_gray);
title('template gray');
d_gray=imread('China_gray.bmp'); subplot(2,2,3);
imshow(d_gray);
title('destination gray');
[sm,sn]=size(source_gray); [dm,dn]=size(d_gray);
d_RGB=zeros(dm,dn,3);
%获得各灰度级对应的RGB值 count=zeros(1,256);
rgb_value=zeros(1,256,3); for sk=1:sm
for sl=1:sn
count(source_gray(sk,sl)+1)=count(source_gray(sk,sl)+1)+1;
rgb_value(1,source_gray(sk,sl)+1,:)=double(source_RGB(sk,sl,:));
end
end
%处理源图像没有的灰度级对应的RGB值,可以采用插值的方法来获得
%这里设置为白色
for k=1:256
if count(k)==0
rgb_value(1,k,1)=0;
rgb_value(1,k,2)=0;
rgb_value(1,k,3)=0;
end
end
rgb_value=uint8(rgb_value);
%黑白图像彩色化
for dk=1:dm
for dl=1:dn
d_RGB(dk,dl,:)=rgb_value(1,d_gray(dk,dl)+1,:);
end
end
subplot(2,2,4);
imshow(uint8(d_RGB));
title('destination RGB');
imwrite(uint8(d_RGB),'China_RGB.jpg');
实现效果:
template RGBtemplate gray
destination graydestination RGB