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
所得到的的圖像效果如圖所示: