11 彩色增强

更多MATLAB图像处理视频请点击  http://study.163.com/course/courseMain.htm?courseId=1003594013  

   彩色增强在图像处理中应用十分广泛且效果显著。人的视觉系统对彩色相当敏感,人眼一般能区分的灰度级只有二十多个,而对不同亮度和色调的彩色图像分辨能力可达到灰度分辨能力的百倍以上。彩色增强就是根据人的这个特点,将彩色用于图像增强之中,从而提高了图像的可分辨性。

1.密度分割法

   密度分割法,也叫做密度分层,它是对图像亮度范围进行分割,使一定亮度间隔对应于某一类地物或几类地物从而有利于图像的增强和分类。如图 5-25 所
示,它是把黑白图像的灰度级从 0(黑)到 M0(白)分成 N 个区间 L i ,i=1,2,⋯,N。给每个区间 L i 指定一种彩色 C i ,这样,便可以把一幅灰度图像变成一幅伪彩色图像。此法比较直观简单,缺点是变换出的彩色数目有限。


grayslice(I,n):灰度分层法彩色图像处理函数,I为输入的灰度图像,n为分从层数

例:

I=imread('m83.tif');
imshow(I);
title('原图')
X=grayslice(I,16);
figure,imshow(X,hot(16));
title('彩色增强后的图')


附:关于MATLAB颜色的显示问题

MATLAB有个一叫颜色映像的数据结构来代表颜色,颜色映像定义了一个有三行和若干列的矩阵,利用0到1之间的数,矩阵的每一行都代表了一种色彩,每一行的数字都指定了一个RGB值,即红、黄、蓝三种颜色的强度,形成一种特定的颜色

R    G    B    颜色

0     0     0   黑色

1     1      1  白色

1      0      0  绿色

。。。。。

。。。。。


MATLAB中有10个函数产生预定义的颜色映像

hsv   色彩饱和值(以红色开始和结束)

hot    从黑到橘红和黄到白

cool   青蓝和洋红的色度

pink   粉红的彩色度

gray  线性灰度

bone   带一点蓝色的灰度

jet        hsv的一种变形(以蓝色开始和结束)

copper    线性铜色度

prim      三棱镜。交替为红色, 橘黄色,黄色,蓝色和天蓝色

flag    交替为红色,白色,蓝色和黑色


注释:

hot(m):产生一个mx3的矩阵(即有m中RGB组合值,也就是有m种颜色),它包含的RGB颜色的值从黑经过红、橘红和黄到白。




2.空间域灰度级—彩色变换

          空间域灰度级—彩色变换是一种更为常用的、比密度分割更有效的伪彩色增强法。它是根据色度学的原理,将原图像的灰度分段经过红、绿、蓝三种不同变换,变成三基色分量,然后用它们分别去控制彩色显示器的红、绿、蓝电子枪,便可以在彩色显示器的屏幕上合成一幅彩色图像。彩色的含量由变换函数的形状而定。典型的变换函数如图 所示,其中图(a)、(b)、(c)分别为红、绿、蓝三种变换函数,而图(d)是把三种变换画在同一张图上以便看清相互间的关系。由图(d)可见,只有在灰度为零时呈蓝色,灰度为 L/2 时呈绿色,灰度为 L 时呈红色,灰度为其他值时将由三基色混合成不同的色调。



例:

a=imread('m83.tif');
>> figure,imshow(a),title('原图');
>> figure,imhist(a,64),title('直方图');
c=zeros(size(a));
pos=find((a>=60)&(a<=105));
%find 函数范围a中灰度值大于60且小于105的位置
c(pos)=a(pos);
b(:,:,3)=c;%控制B(蓝色)的显示效果
%同理,然后去控制G(绿色),R(红色)的显示
c=zeros(size(a));
pos=find((a>=105)&(a<150));
c(pos)=a(pos);
b(:,:,2)=c;
c=zeros(size(a));
pos=find(a>=150);
c(pos)=a(pos);
b(:,:,1)=c;
figure,imshow(b),title('彩色增强图');

更多MATLAB图像处理视频请点击  http://study.163.com/course/courseMain.htm?courseId=1003594013


原创文章 100 获赞 339 访问量 56万+

猜你喜欢

转载自blog.csdn.net/MATLAB_matlab/article/details/54169737
11
今日推荐