您的位置:首页 > 编程语言 > MATLAB

MATLAB 图像伪彩色处理

2017-06-02 16:18 513 查看
伪彩色处理是根据特定的准则对灰度值附以彩色的处理,是将黑白图像转化为彩色图像,或者将单色图像变换成给定彩色分布的图像。由于人眼对彩色的分辨率远高于灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。以下是使用MATLAB来实现。

我使用的是灰度级变换方法:先将灰度图像经不同变换特性的红、绿、蓝三个通道,不同的灰度级三种颜色实施的变换不同,再讲三个不同的输出合成某种颜色,这样不同大小的灰度级就可以合成不同的颜色。

灰度值和三个通道的映射关系如图(这种关系可以根据需要更改):







由图中的对应关系,可以得出r、g、b、在四个灰度级的对应的函数关系式,用MATLAB实现如下:

im=imread('cell.jpg');
gray=rgb2gray(im);
I=double(gray);
[m,n]=size(I);
L=256;
for i=1:m
for j=1:n
if I(i,j)<=L/4
R(i,j)=0;
G(i,j)=4*I(i,j);
B(i,j)=L;
else if I(i,j)<=L/2
R(i,j)=0;
G(i,j)=L;
B(i,j)=-4*I(i,j)+2*L;
else if I(i,j)<=3*L/4
R(i,j)=4*I(i,j)-2*L;
G(i,j)=L;
B(i,j)=0;
else
R(i,j)=L;
G(i,j)=-4*I(i,j)+4*L;
B(i,j)=0;
end
end
end
end
end
for i=1:m
for j=1:n
rgbim(i,j,1)=R(i,j);
rgbim(i,j,2)=G(i,j);
rgbim(i,j,3)=B(i,j);
end
end
rgbim=rgbim/256;
figure;
subplot(1,2,1);
imshow(gray);
subplot(1,2,2);
imshow(rgbim);


图像处理结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息