Color Image Processing


摘   要:伪彩色图像处理是基于一种指定的规则对灰度值赋予颜色的处理,主要用于人目视观察和解释单幅图像或序列图像中的灰度级事件。灰度分层是伪彩色图像处理的一个简单例子,就是将图像中的黑白灰度级变成不同的彩色,如果分层越多,人眼所能提取的信息也多,从而达到图像增强的效果。本实验编写相应图像变换的程序产生一幅合成图像,实现图像的伪彩色处理和直方图均衡化变换,观察对比实验结果。

 


 

一、实验目的

(1.a) 编写程序实现图6.23,程序的输入为图像中指定的两个灰度级范围。程序的输出为 RGB 格式图像,其中,一个灰度级范围显示为指定的彩色,其余的像素以 RGB 形式显示为与输入图像对应像素相同的灰度色。

(1.b) 用上述程序对图1.10(4)进行处理,要求使河流呈现为黄色,其余区域像素与原输入图像灰度保持一致。在结果图像中一些孤立区域一般也会呈现黄色,因此需要选取合适的灰度级范围,使这样的区域尽可能少。

(2.a) 将 dark-stream 图 6.35 (该图即图 6.35(05))转换为 RGB 分量图。用直方图均衡化程序对 R, G 和 B分量图分别进行直方图均衡化,然后将结结果图转换回 jpg 格式。

(2.b) 用(2.a)中的三个直方图构成一个平均直方图,以此直方图为基础得到单一的直方图均衡化强度变换函数。将该函数分别单独作用到R、G 和 B 分量图上,将结果图转换为 jpg 格式。比较并解释(2.a)和(2.b)中图像的差异。

二、技术论述

1 伪彩色图像处理

伪彩色图像处理(也称假彩色)是根据特定的准则对灰度值赋以彩色的处理。伪彩色的主要应用是为了人目视观察和解释一幅图像或序列图像中的灰度级事件,人眼只能辨别几十种灰度色调,辨别非常有限,但对色彩的辨别却有几千种的彩色色调和亮度,辨别能力很强。伪彩色处理思路是将图像中感兴趣的灰度级区域用特定的颜色显示出来,如图2.1所示是对任意像素的灰度执行三个独立变换,也就是将灰度图像分成R、G、B三个分量图,对各个分量的强度进行变换,使之合成的新图像显示特定的颜色。

图2.1 单色图像可用时的伪彩色编码框图

2 彩色图像直方图处理

直方图均衡是自动地确定一种变换,这种变换试图产生具有均匀灰度值的直方图。但由于彩色图像是由多个分量组成的,所以要考虑适应多个分量和/或直方图的灰度级技术,所以一般合乎逻辑的处理方法是均匀地展开各分量的彩色灰度,保持图像色调不变。

直方图处理中采用一定的变换方式使图像中较少的灰度级压缩,较多的灰度级拉伸。一般的彩色变换模型表达式可以表示为:

是彩色输入图像, 是变换或处理后的的彩色输出图像,T是在 的空间邻域上对f的一个算子。经过这种强度变换后,虽然不能改变图像的色调和饱和度,但图像各分量中的像素点被均匀分布到整个灰度级上,增强了图像的彩色感官。

三、实验结果讨论

用实验要求(1.a)编写的程序对图1.10(4)进行处理,使河流呈现为黄色,其余区域像素与原输入图像灰度保持一致,得到如图3.1所示结果。将素材中的图6.35(05)转换为RGB分量图。用直方图均衡化程序对 R, G 和 B分量图分别进行直方图均衡化,得到如图3.2所示的R、G和B分量图像及直方图均衡化后的图像,图3.3是彩色图像R、G和B分量直方图及均衡化后的直方图,将均衡化后各分量图像合成直方图均衡化后的彩色图像如图3.4所示。将实验要求(2.a)中的三个直方图构成一个平均直方图,以此直方图为基础得到单一的直方图均衡化强度变换函数并作用到R、G 和 B 分量图上,生成如图3.5所示的RGB各分量规定化的图像(程序见附录)

图3.1 将图中河流显示为黄色的伪彩色处理结果图

图3.2 R、G和B分量图像及直方图均衡化后的图像

图3.3 彩色图像R、G和B分量直方图及均衡化后的直方图

图3.4 合成直方图均衡化后的彩色图像

图3.5 RGB各分量规定化的图像

四、实验结论

将图像中某个特地区域用特定颜色来显示,就是要把该区域的灰度值用特定颜色来显示。为了做相应的图像变换必须先得出该区域的灰度级范围,如图3.1显示了处理后的结果,图中的河流有部分没有被标识出来,而其他区域有小部分却被标识出来。是因为图像中可能也有其他区域有同样的灰度级,这就会带来错误的标识,所以要选取最佳的灰度范围来减少这样的区域。

彩色图像各分量的均衡化后的图像及直方图分别见图3.2、图3.3,可见图各分量的亮度都有所提升,对比度增加。图3.4是对彩色图像各分量分别做直方图均匀化后的结果图,与原图相比变换后的图像明显变亮,各颜色的对比也更加清晰。

图3.5是采用统一的均衡化直方图对彩色图像各分进行变换后合成的图像,也可以观察到图片变亮、对比度增加,但比图3.4中的直方图均衡化后的彩色图像更加接近原图,实验要求(2.a)是对各个分量分别处理,这就导致RGB各分量的变换不是统一的,合成后便有可能产生与原图不一致的颜色,而本题中各分量采用的是相同的变换,便可以保证与原图的色度最为接近。


附录:程序清单

1 将Fig1.10(4)中河流显示为黄色的伪彩色处理

functioncolor_image_process

im=imread('Fig1.10(4).jpg');

im=imresize(im,[512 ,512]);

subplot(121);imshow(im);title('原图像');

gray1=0;  gray2=30;

im=colorProcess(im,gray1,gray2);

subplot(122);imshow(im);title('伪彩色处理后的图像');

functionim=colorProcess(im,gray1,gray2)

[M,N]=size(im);

for i=1:M

    for j=1:N

        if(im(i,j)>=gray1)&(im(i,j)<gray2)

            R(i,j)=255;

            G(i,j)=255;

            B(i,j)=0;

        else

            R(i,j)=im(i,j);

            G(i,j)=im(i,j);

            B(i,j)=im(i,j);

        end

    end

end

 

for i=1:M

    for j=1:N

        im_c(i,j,1)=R(i,j);

        im_c(i,j,2)=G(i,j);

        im_c(i,j,3)=B(i,j);

    end

end

im=im_c;

2 彩色图像直方图均衡化处理程序

 %histeq()是图像直方图均衡化处理,用以增强对比度,imhist()是计算强度图像的直方图并显示直方图的图形。

RGB=imread('Fig6.35(5).jpg');    

R=RGB(:,:,1);%提取彩色图像的红色分量             

G=RGB(:,:,2);%提取彩色图像的绿色分量             

B=RGB(:,:,3);%提取彩色图像的蓝色分量

r=histeq(R); %红色分量均衡化后的图像              

g=histeq(G); %绿色分量均衡化后的图像

b=histeq(B); %蓝色分量均衡化后的图像

subplot(321),imshow(R);title('提取彩色图像的R分量');

subplot(322),imshow(r);title('R分量均衡化后的图像');

subplot(323),imshow(G);title('提取彩色图像的G分量');

subplot(324),imshow(g);title('G分量均衡化后的图像');

subplot(325),imshow(B);title('提取彩色图像的B分量');

subplot(326),imshow(b);title('B分量均衡化后的图像');

figure

subplot(321);imhist(R);title('R分量直方图');

subplot(322), imhist(r);title('R分量均衡化后图像直方图');

subplot(323), imhist(G);title('G分量直方图');

subplot(324), imhist(g);title('G分量均衡化后图像直方图');

subplot(325), imhist(B);title('B分量直方图');

subplot(326), imhist(b);title('B分量均衡化后图像直方图');

figure                          

subplot(121),imshow(RGB); title('原彩色图像');

newimg = cat(3,r,g,b);               

subplot(122),imshow(newimg,[]);title('直方图均衡化后图像');

imwrite(newimg,'junhenghua.jpg')

rgb1=rgb2gray(newimg);%RGB图像转换为灰度

[count,x]=imhist(rgb1);%提取直方图信息

r1=histeq(R,count);%作用于红色分量

g1=histeq(G,count);

b1=histeq(B,count);

newRGB=cat(3,r1,g1,b1);%将r1 g1 b1三个分量合成

figure;

subplot(121),imshow(newimg,[]);title('直方图均衡化后图像');

subplot(122),imshow(newRGB);title('RGB各分量规定化');

imwrite(newRGB,'regluation.jpg');


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值