彩色图像处理

1彩色基础

彩色定义:彩色是物体的一种属性,他依赖于一下三个方面的因素。

(1)光源——照射光的谱性质或谱能量分布

(2)物体——被照射物体的反射性质

(3)成像接收器(眼睛或成像传感器)——光谱能量吸收性质

 

2彩色模型

彩色模型也称彩色空间或彩色系统,是用来精确标定和生成各种颜色的一套规则和定义,它的用途是在某些标准下用通常可接受的方式简化彩色规范。彩色模型通常可以采用坐标系统来描述,而位于系统中的每种颜色都可由坐标空间中的单个点来表示。

RGB模型:该模型是工业界的一种颜色标准,是通过对红绿蓝三个颜色亮度的变化以及他们相互之间的叠加来得到各种各样的颜色的,该标准几乎包括了人类视觉所能感知的所有颜色,是目前运用最广的颜色模型之一。

CMY模型:采用青、品红、黄色三种基本原色按一定比例合成颜色的方法。由于色彩的显示不是直接来自于光线的色彩,而是光线被物体吸收掉一部分之后反射回来的剩余光线所产生的,因此CMY模型又称减色法混合模型。

CMYK模型:CMY模型中加上黑色。

RGB与CMY之间的转换:在matlab中可以通过imcomplement()函数方便的实现RGB和CMY之间的相互转换

cmy=imcomplement(rgb);

rgb=imcomplement(cmy);

HSI模型:HSI模型是从人的视觉系统出发,直接使用颜色三要素——色调(hue)、饱和度(Sturation)和亮度(Intensity,有时也翻译作密度或灰度)来描述颜色

@亮度是指人感觉光的明暗程度。光的能量越大,亮度越大。

@色调是彩色最重要的属性,决定颜色的本质,由物体反射光线中占优势的波长来决定,不同的波长产生不同的颜色感觉。

@饱和度是指颜色的深浅和浓淡程度,饱和度越高,颜色越深。饱和度的深浅和白色的比例有关,白色比例越多,饱和度越低。

从RGB到HSI的彩色转换及其实现

figure;
 subplot(1,2,1);
 rgb=imread('plane.bmp');
 imshow(rgb);title('rgb');
 subplot(1,2,2);
 hsi=rgb2hsi(rgb);
imshow(hsi);title('hsi');

从HSI到RGB的彩色转换及其实现

figure
subplot(1,2,1);
hsi=imread('plane.bmp');
imshow(hsi);title('hsi');
subplot(1,2,2);
rgb=hsi2rgb(hsi);
imshow(rgb);title('rgb');

HSV模型:是人们用来从调色板或颜色轮中挑选颜色(例如颜料、墨水等)所采用的的彩色系统之一。HSV表示色调、饱和度和数值。该系统比RGB更接近于人们的经验和对彩色的感知

从RGB到HSV的转换及其实现:输入的RGB图像可以是uint8、uint16或double类型的,输出图像HSV为M*N*3的double类型

YUV模型:Y代表亮度、U、V代表色差,是构成彩色的两个分量。采用YUV模型的一个主要优势是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那图像就是黑白灰度图

YIQ模型:是北美NTSC彩色制式,主要用于美国的电视系统。这种形式和欧洲的YUV模式有相同的优势:灰度信息和彩色信息是分离的。其中亮度表示灰度,而色调和饱和度则存储彩色信息。

matlab函数rgb2ntsc()可实现从rgb到ntsc的转换,其调用形式如下:yiq=rgb2ntsc(rgb);

输入的rgb图像可以是uint8

Lab模型:是由CIE(国际照明委员会)制定的一种彩色模式,这种模型与设备无关,它弥补了RGB模型和CMYK模型必须依赖于设备颜色特性的不足;此外,自然界中任何色彩都可在Lab空间表达出来,这就意味着RGB以及CMYK所能描述的颜色信息在Lab中都能得以映射。其中L代表亮度;a的整数代表红色,负端代表绿色;b的正数代表黄色,负端代表蓝色。

 

全彩色图像处理基础

全彩色图像处理技术总的可以分为两大类:

(1)对3个平面分量单独处理,然后将分别处理过的三个分量合成彩色图像,对每个分量的处理技术可以应用到对灰度图像处理的技术上

(2)直接对彩色像素进行处理。因为全彩色图像至少有3个分量,彩色像素实际上是一个向量,直接处理就是同时对所有分量进行无差别的处理。

彩色补偿及其matlab实现:

有些图像处理任务的目标是根据颜色分离出不同类型的物体。但由于常用的彩色成像设备具有较宽且相互覆盖的光谱敏感区,加之待拍摄图像的染色是变化的,所以很难再3个分量图中将物体分离出来,这种现象称为颜色扩散。彩色补偿的作用就是通过不同的颜色通道提取不同的目标物。

 

%彩色补偿

im=double(imread('plane.bmp'));
subplot(1,2,1);
imshow(uint8(im));
title('原始图');
[m,n,p]=size(im);
[h1,k1]=min(255-im(:,:,1)+im(:,:,2)+im(:,:,3));
[j1,minx]=min(h1);
i1=k1(j1);%提取图像中最接近红色的点,其在im中的坐标为i1,j1
r1=im(i1,j1,1);
g1=im(i1,j1,2);
b1=im(i1,j1,3);
R=0.30*r1+0.59*g1+0.11*b1;

[h2,k2]=min(255-im(:,:,2)+im(:,:,1)+im(:,:,3));
[j2,minx]=min(h2);
i2=k2(j2);%提取图像中最接近绿色的点,其在im中的坐标为i2,j2
r2=im(i2,j2,1);
g2=im(i2,j2,2);
b2=im(i2,j2,3);
G=0.30*r2+0.59*g2+0.11*b2;

[h3,k3]=min(255-im(:,:,3)+im(:,:,1)+im(:,:,2));
[j3,minx]=min(h3);
i3=k3(j3);%提取图像中最接近绿色的点,其在im中的坐标为i2,j2
r3=im(i3,j3,1);
g3=im(i3,j3,2);
b3=im(i3,j3,3);
B=0.30*r3+0.59*g3+0.11*b3;

A1=[r1 r2 r3
    g1 g2 g3
    b1 b2 b3];
A2=[R 0 0
    0 G 0
    0 0 B];
C=A1*inv(A2);

for i=1:m
    for j=1:n
        
        imR=im(i,j,1);
        imG=im(i,j,2);
        imB=im(i,j,3);
        temp=inv(C)*[imR;imG;imB];
        S(i,j,1)=temp(1);
        S(i,j,2)=temp(2);
        S(i,j,3)=temp(3);
    end
end
S=uint8(S);
subplot(1,2,2);
imshow(S);
title('补偿后');

彩色平衡及其matlab实现

一幅彩色图像数字化后,在显示时颜色经常看起来有些不正常。这是颜色通道的不同敏感度、增光因子和偏移量等原因导致的,称其为三基色不平衡。将之校正的过程就是彩色平衡。

%彩色平衡

im=double(imread('plane.bmp'));
[m,n,p]=size(im);
F1=im(1,1,:);
F2=im(1,2,:);
F1_(1,1,1)=F1(:,:,2);
F1_(1,1,2)=F1(:,:,2);
F1_(1,1,3)=F1(:,:,2);
F2_(1,1,1)=F1(:,:,2);
F2_(1,1,2)=F1(:,:,2);
F2_(1,1,3)=F1(:,:,2);
K1=(F1_(1,1,1)-F2_(1,1,1))/(F1(1,1,1)-F2(1,1,1));
K2=F1_(1,1,1)-K1*F1(1,1,1);
L1=(F1_(1,1,3)-F2_(1,1,3))/(F1(1,1,3)-F2(1,1,3));
L2=F1_(1,1,3)-L1*F1(1,1,3);
for i=1:m
    for j=1:n
        new(i,j,1)=K1*im(i,j,1)+K2;
        new(i,j,2)=im(i,j,2);
        new(i,j,3)=L1*im(i,j,3)+L2;
    end
end
im=uint8(im);
new=uint8(new);
subplot(1,2,1);
imshow(im);
title('原始图');
subplot(1,2,2);
imshow(new);
title('平衡后');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值