1.首先利用matlab读取彩色图像,imread
2.利用rgb2gray将彩色图像转化为灰度图像
3.利用color函数对不同的灰度值进行着色
clc;clear
zd=imread('zd2.jpg');
zd=double(rgb2gray(zd));
figure;
subplot(1,2,1)
imshow(zd,[])
B=color(zd);
subplot(1,2,2)
imshow(B,[])
所使用的color函数编写如下:
function B=color(I)
[M,N]=size(I);%读取图像的大小
B=zeros(M,N,3);
%% 归一化处理
I=(I/max(max(I))).*4;
color4 = [145/255 145/255 145/255.];
color3 = [255/255 255/255 0/255];
color2 = [0/255 255/255 0/255];
color1 = [0/255 0/255 255/255];
color0 = [255/255 69/255 0/255.];
for i=1:M
for j=1:N
Id=floor(I(i,j));
if Id>=4
B(i,j,:,:,:)=color4;
elseif I(i,j)<=0
B(i,j,:,:,:)=[0 0 0];
else
col=I(i,j)-Id;
if Id<1
B(i,j,:,:,:)=color1.*col+color0.*(1-col);
elseif Id<2
B(i,j,:,:,:)=color2.*col+color1.*(1-col);
elseif Id<3
B(i,j,:,:,:)=color3.*col+color2.*(1-col);
elseif Id<4
B(i,j,:,:,:)=color4.*col+color3.*(1-col);
end
end
end
end
所得到的的图像效果如图所示: