图像处理基础概念.docx
《图像处理基础概念.docx》由会员分享,可在线阅读,更多相关《图像处理基础概念.docx(18页珍藏版)》请在冰豆网上搜索。
图像处理基础概念
图像处理基础概念
2.2图像基本概念
2.2.1像素与灰度
像素和分辨率 在计算机中,有两个大家都熟悉的概念:
像素(pixel)和分辨率(resolution)。
我们将图像进行采样的单位称为像素,像素是是组成图像的最基本元素,是数字图像显示的基本单位。
像素是一个逻辑尺寸单位,比如一台计算机,其屏幕大小为17英寸,可以用800行*1280列个像素(格子)来显示桌面的图像,也可以用768行*1024列来显示桌面图像,不过显示的图像的清晰度会有差别。
在计算机编程中,由像素组成的图像也通常叫“位图”或“光栅图像”。
而分辨率狭义的是指显示器所能显示的像素的多少,当用户设置桌面分辨率为1280*800时,表示的意思就是在这个屏幕大小的物理尺寸上,显示器所显示的图像由800行*1280列个像素组成;可以看出,在同样大小的物理尺寸上,分辨率越高的图像,其像素所表示的物理尺寸越小,画面也就越精细,整个图像看起来也就越清晰。
广义的分辨率是指对一个物体成像数字时化时进行采样的物理尺寸的大小,比如我们嫦娥一号卫星拍摄的月亮的照片,其分辨率是个很大的数(通常称分辨率很低),如几千平方公里,意思是说,在拍摄的月球的照片上,一个像素点相当于月球上几千公里见方。
2.2.2采样量化
将空间上连续的图像变换成离散点的操作称为采样。
采样间隔和采样孔径的大小是两个很重要的参数。
当对图像进行实际的抽样时,怎样选择各抽样点的间隔是个非常重要的问题。
关于这一点,图像包含何种程度的细微的浓淡变化,取决于希望忠实反映图像的程度。
经采样图像被分割成空间上离散的像素,但其灰度是连续的,还不能用计算机进行处理。
将像素灰度转换成离散的整数值的过程叫量化。
表示像素明暗程度的整数称为像素的灰度级(或灰度值或灰度)。
一幅数字图像中不同灰度级的个数称为灰度级数,用G表示。
灰度级数就代表一幅数字图像的层次。
图像数据的实际层次越多视觉效果就越好。
一般来说,G=2g ,g就是表示存储图像像素灰度值所需的比特位数。
若一幅数字图像的量化灰度级数G=256=28级,灰度取值范围一般是0~255的整数,由于用8bit就能表示灰度图像像素的灰度值,因此常称8bit量化。
从视觉效果来看,采用大于或等于6比特位量化的灰度图像,视觉上就能令人满意。
一幅大小为M×N、灰度级数为G的图像所需的存储空间,即图像的数据量,大小为M×N×g(bit)。
图2.4分辨率与图像清晰度
图2.5量化等级与图像清晰度
一般来说,采样间隔越大,所得图像像素数越少,空间分辨率低,质量差,严重时出现像素呈块状的国际棋盘效应;采样间隔越小,所得图像像素数越多,空间分辨率高,图像质量好,但数据量大,如图2.4所示,图像越来越模糊。
同样,量化等级越多,所得图像层次越丰富,灰度分辨率高,图像质量好,但数据量大;量化等级越少,图像层次欠丰富,灰度分辨率低,会出现假轮廓现象,图像质量变差,但数据量小。
如图2.5所示,图像的质量越来越差,左上角的图像质量最好,但数据量也越大。
但在极少数情况下对固定图像大小时,减少灰度级能改善质量,产生这种情况的最可能原因是减少灰度级一般会增加图像的对比度。
例如对细节比较丰富的图像数字化。
数字图像根据灰度级数的差异可分为:
黑白图像、灰度图像和彩色图像。
彩色图像、灰度图像与二值图像 按所能呈现的色彩和灰度等级我们可以将任何图像(物理的和数字的)图像分为彩色图像、灰度图像和二值图像。
彩色图像是指图像中含有色彩信息的图像,在数字图像中,每一个像素都有相应的数值来表示该像素的信息,彩色图像的信息就是颜色信息。
根据三基色原理,任何颜色都可以表示为三个基本颜色红、绿、蓝(RGB)按不同比例合成产生。
通常所说的24位(bit)位图(windows画图器程序中有相应的保存选项)就是每个像素由24位信息来表示颜色的位图,R、G、B每种颜色通道信息各8位,因此有224(16777216)种不同的颜色(人眼对色彩的分辨能力大致是一千万色),这些颜色足以表达出人眼能够辨别的所有信息,因此也叫做真彩色图像。
而灰度图像是指只有亮度差别,而没有颜色差别的图像,例如黑白的老照片。
由于人眼能够辩出的亮度等级是有限的,因此数字图像中也可以用有限的等级来描述一副图像。
例如,每个像素采用一个字节来表示其亮度信息,就有256级的亮度(28),等级越多的图像效果越好。
当灰度图像的灰度只有两个等级的时候,这种图像就叫做二值图像(黑白图像)。
可以只用“全黑”和“全白”两种方式对图像进行描述和记录。
二值图像所含的信息较少,占用的存储空间也相应较少,但二值图像也有不少的应用,如指纹图像以及文字的识别等,都需要获得二值图像。
(a)黑白图像的像素值
(b)灰度图像的像素值
(c)彩色图像的像素值
图2.6图像与像素值
黑白图像 图像的每个像素只能是黑或白,没有中间的过渡,故又称为二值图像。
二值图像的像素值为0或1。
如图2.6(a)所示
灰度图像 灰度图像是指灰度级数大于2的图像。
但它不包含彩色信息。
如图2.6(b)所示
彩色图像 彩色图像是指每个像素由R、G、B分量构成的图像,其中R、B、G是由不同的灰度级来描述(后面我们知道,还有其他的颜色空间来描述彩色图像)。
每个分量的值如图2.6(c)所示。
2.2.3三基色原理
相加混色与RGB 在中学的物理课中我们可能做过棱镜的试验,白光通过棱镜后被分解成多种颜色逐渐过渡的色谱,颜色依次为红、橙、黄、绿、青、蓝、紫,这就是可见光谱。
其中人眼对红、绿、蓝最为敏感,人的眼睛就像一个三色接收器的体系,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生,同样绝大多数单色光也可以分解成红绿蓝三种色光。
这是色度学的最基本原理,即三基色原理(如图2.7所示)。
三种基色是相互独立的,任何一种基色都不能由其它两种颜色合成。
红绿蓝是三基色,这三种颜色合成的颜色范围最为广泛。
红绿蓝三基色按照不同的比例相加合成混色称为相加混色。
其中一些混色的规律有:
红色+绿色=黄色;绿色+蓝色=青色;红色+蓝色=品红;红色+绿色+蓝色=白色;另外:
红色+青色=白色;绿色+品红=白色;蓝色+黄色=白色。
图2.7三基色原理
当两种光按照适当比例混合得到白光时,称这两种光为互补光。
所以,按照上述的混色规律我们可以得到,青色、黄色、品红分别是红色、蓝色、绿色的补色。
由于每个人的眼睛对于相同的单色感受不同,所以,如果用相同强度的三基色混合时,假设得到白光的强度为100%,这时,人的主观感受是,绿光最亮,红光次之,蓝光最弱。
如果用Y表示景物的亮度,则通常有:
Y=0.299R+0.587G+0.114B
因为红、绿、蓝三基色能够合成自然界所有的色彩,因此在电子设备和软件中,经常使用红绿蓝三基色合成五颜六色的图像。
用以上的相加混色所表示的颜色模式成为RGB模式。
相减混色与CMY(CMYK) 大家知道,显示器采用RGB模式,就是因为显示器是电子光束轰击荧光屏上的荧光材料发出亮光从而产生颜色。
当没有光的时候为黑色,光线加到最大时为白色。
而打印机呢?
它的油墨不会自己发出光线。
因而只有采用吸收特定光波而反射其它光的颜色,所以需要用减色法来解决。
CMYK颜色模式是一种印刷模式。
其中四个字母分别指青(Cyan)、洋红(Magenta)、黄(Yellow)、黑(Black),在印刷中代表四种颜色的油墨。
CMYK模式在本质上与RGB模式没有什么区别,只是产生色彩的原理不同,在RGB模式中由光源发出的色光混合生成颜色,而在CMYK模式中由光线照到有不同比例C、M、Y、K油墨的纸上,部分光谱被吸收后,反射到人眼的光产生颜色。
由于C、M、Y、K在混合成色时,随着C、M、Y、K四种成分的增多,反射到人眼的光会越来越少,光线的亮度会越来越低,所有CMYK模式产生颜色的方法又被称为色光减色法。
在白光照射下,青色颜料能吸收红色而反射青色,黄色颜料吸收蓝色而反射黄色,品红颜料吸收绿色而反射品红。
也就是:
白色-红色=青色;白色-绿色=品红;白色-蓝色=黄色
如果把青色和黄色两种颜料混合,在白光照射下,由于颜料吸收了红色和蓝色,而反射了绿色,对于颜料的混合我们表示如下:
颜料(黄色+青色)=白色-红色-蓝色=绿色;
颜料(品红+青色)=白色-红色-绿色=蓝色;
颜料(黄色+品红)=白色-绿色-蓝色=红色
以上的都是相减混色,相减混色就是以吸收三基色比例不同而形成不同的颜色的。
所以有把青色、品红、黄色称为颜料三基色。
CMYK模式是一种颜料模式,所以它属于印刷模式,但本质上与RGB模式没有区别,只是产生颜色的方式不同。
2.2.4彩色模型(RGB、YUV、YCbCr、HSV、HLS)
正如几何上用坐标空间来描述坐标集合,色彩空间用数学方式来描述颜色集合。
常见的3个基本色彩模型是RGB,CMYK和YUV。
RGB RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。
例如:
纯红色R值为255,G值为0,B值为0;灰色的R、G、B三个值相等(除了0和255);白色的R、G、B都为255;黑色的R、G、B都为0。
RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216(224)种颜色。
YUV 在现代彩色电视中,通常采用三管彩色摄像机或彩色CCD摄像机,它把得到的彩色图像信号,经分色、分别放大校正得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y、B-Y,最后发送端将三个信号分别进行编码,用同一信道发送出去。
这就是我们常用的YUV颜色空间。
YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。
其中的Y,U,V几个字母不是英文单词的组合词,Y代表亮度,U,V代表色差,U和V是构成彩色的两个分量。
采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。
如果只有Y信号分量而没有U、V信号分量,那么这样表示的图像就是黑白灰度图像。
彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的相容问题,使黑白电视机也能接收彩色电视信号。
YUV主要用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。
与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。
其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。
“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。
其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。
而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。
采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。
如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。
彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
YUV相关色彩模型与RGB的转换方程如下:
YCbCr 在DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案是YCbCr,其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。
YCbCr是在世界数字组织视频标准研制过程中作为ITU-RBT1601建议的一部分,其实是YUV经过缩放和偏移的翻版。
在YUV家族中,YCbCr是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG,MPEG均采用此格式。
因此,一般人们所讲的YUV大多是指YCbCr。
其中Y与YUV中的Y含义一致,Cb,Cr同样都指色彩,只是在表示方法上不同而已。
常用的从RGB到YCbCr的转换公式如下:
图像子采样(ImageDownsampling) 由于人的肉眼对视频的Y分量更敏感,因此我们在(YUV、YCbCr)亮度和色度来表示颜色的颜色空间中,我们可以对色度信息进行弱化,而不会改变肉眼观察的结果。
因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到图像质量的变化。
具体来说,我们可以对图像中每个像素设置一个单独的亮度值,而按照某些特定的规则,将一组像素赋予相同的色度值。
我们将这个过程称为子采样。
Intel®IPP的函数支持下列子采样的格式:
4:
4:
4YUV(YCbCr) 该格式是传统的未采取子采样的格式,对每一个像素的Y、U(Cb)、V(Cr)都进行采样。
每个成份通常包含8位,每个像素需要24位,这种格式因此也通常称为4:
4:
4格式。
4:
2:
2YUV(YCbCr) 采用2:
1的水平方向子采样,它的含义是,对每个像素的亮度值Y进行采样,对水平方向连续两个像素的U(Cb)V(Cr)进行采样。
如果每一个通道占用8位,那么每两个像素占有8*2+8+8=32位的空间,因此每个像素比4:
4:
4格式少用8位空间。
4:
1:
1YCbCr 采用4:
1的水平方向子采样,它的含义是,对每个像素的亮度值Y进行采样,对水平方向连续4个像素的U(Cb)V(Cr)进行采样。
如果每一个通道占用8位,那么每4个像素占有8*4+8+8=48位的空间,因此每个像素比4:
4:
4格式少用12位空间。
4:
2:
0YUV(YCbCr) 采用水平和垂直方向2:
1子采样,它的含义是,对每个像素的亮度值Y进行采样,每2*2个像素块进行一次U(Cb)和V(Cr)采样。
如果每一个通道占用8位,则每4个像素占有8*4+8+8=48位的空间,因此每个像素比4:
4:
4格式少用12位空间。
4:
2:
0格式是便携式视频设备(MPEG-4)以及电视会议(H.263)最常用格式;4:
2:
2格式是DVD、数字电视、HDTV以及其它消费类视频设备的最常用格式;4:
4:
4格式用于高质量视频应用、演播室以及专业视频产品。
在图像压缩算法中,JPEG采用了一种特定的子采样方法。
在JPEG算法中,子采样的格式会决定最小编码单元的结构(minimalcodedunits,orMCUs),因此在IPP中,支持JPEG算法的函数支持下列的子采样格式:
4:
4:
4YCbCr 针对每个8*8像素块大小,有8*8块大小的Y值,同时,也分别有一个8*8块大小的Cb和Cr值。
4:
2:
2YCbCr 针对两个水平方向连续的8*8像素块,有两个8*8块大小的Y值,也分别有一个8*8块大小的Cb值和Cr值。
4:
1:
1YCbCr 针对每4个8*8块(水平和垂直各两块8*8大小的像素块),有4个8*8块大小的Y值,也分别有一个8*8块大小的Cb值和Cr值。
图2.8平面图像示意图
HSV颜色模型 在生活中,我们感知和关于颜色的讨论其实和RGB颜色模型并不是直接相关,举个例子来说,如果我们装修房子,我们对房子装饰的颜色并不是说R,G,B成份各是多少,而会说我们打算用什么颜色,多亮,颜色是柔和一些的还是鲜明一些的。
通常来说,我们第一个关注的就是颜色(Hue,色相或色彩),色相描述了具体的颜色,如红、黄、紫等,即其在光谱上的位置(该可见光的波长是多少)。
如图2.9所示,用从0到3600的圆圈代表了不同的颜色;第二个会关注的是颜色的饱和度(S,纯度),饱和度衡量该颜色相对于白色的多少,比如,一个全部是红色而没有白色成份的颜色是完全饱和的,如果将白色加入到红色中去,红色会变得更加柔和,我们感知的颜色也会从红色相粉红色变化,此时的颜色(色相)仍然是红色,但是该颜色变得不饱和。
如图所示,纵轴表示了不同的饱和度;最后,我们也会经常说明颜色的亮度,我们可以拿一个红色的跑车为例,当天气晴朗,足够的光线反射到我们的眼睛,这时,车子看起来很亮,很色也很鲜艳,但是,到了傍晚,光线很弱,车子看起来也很暗淡,看起来偏黑。
如图所示,横轴表示了不同的亮度,和饱和度一样,其范围也是0-100%,亮度表示了有多少光线照射在该颜色上,我们从图中也可以看出,当亮度增加是,红色跟鲜艳,当亮度降低时,红色变得更黑。
因此,和RGB颜色空间类似,HSV是另一种描述颜色空间的颜色模型,RGB颜色空间和HSV颜色空间之间可以互相转化(有相互转化的公式)。
该模型的描述方法更接近于人类对于颜色的感知。
下图为将RGB模型分解为H、S、V后的灰度图。
为了更好的理解HSV和RGB颜色空间的概念。
我们将详细描述他们之间的关系。
我们首先从亮度的概念着手,亮度的概念在前面也有描述,它是对某一个区域发出光线多少的感知。
市场上有一种可控灯,我们可以这种灯的亮度,不管这个灯是红色的光还是白色的光。
在RGB颜色空间中,亮度是用RGB三种颜色值的和来表示。
对与某一等级的亮度,其代表了垂直于正方体的对角线的平面(R+B+G=Constant),如图所示,我们选取了RGB颜色空间的三个垂直于对角线的平面,图(a)显示了三个当中最暗的平面,图(c)是三个当中最亮的,我们注意到,虽然在每一个平面中的颜色是千变万化的,但是他们的亮度是相同的。
在对角线的两个端点是两种特殊的颜色,黑色和白色,他们在RGB空间中只有一个点(而不是平面)。
其实,(R+G+B)/3虽然是亮度的严格定义,但是人类感知颜色的亮度并不是这样的,人类感知亮度的公式是Luminance,Y=0.30R+0.59G+0.11B。
因为这些权值比较准确的衡量了人类眼睛对红、绿、蓝三种颜色的敏感度。
图2.9HSV颜色模型
图2.10图片及其H、S、V分量图
接下来我们阐述饱和度的概念。
饱和度的定义依赖于亮度,饱和度定义为彩色度(colorfulness)与亮度的比值。
用什么衡量彩色度呢?
我们仍然可以借助RGB正方体空间和该正方体的对角线来描述。
正方体的这条对角线的颜色值范围从0R0G0B到255R255G255B,对角线上所有的R,G,B分量都相同,构成了从黑到白的所有灰度值。
因此在这条轴上,没有颜色信息,因此,在RGB空间中,任何一点的彩色度,与该点到这条轴的距离成正比。
离这条轴的距离越近,该点看上去彩色度就很小,看上去偏灰,离这条轴的距离越远,该点看上去颜色也就越丰富。
而饱和度就是彩色度与亮度的比值(也即每一个颜色点与黑点、即远点所成的直线与中心轴的夹角大小)。
因此在图中的每一个平面中的点,离中心轴越远,饱和度越大。
如图所示。
左图和右图分别对应于20%和70%的饱和度,饱和度越高,颜色越鲜艳,从图中可以看出,右图比左图明显要鲜艳很多。
(a)
(b)
(c)
(d)
图2.11HSV分量图
最后,我们看看颜色(Hue),我们将颜色定义为其与轴线的夹角的方向(大小为饱和度),如图所示,红色、青色、黄色、绿色等颜色在绕轴线的360度角上均匀地分配。
如图所示,(a)图的Hue值为330度,其颜色为紫色;(b)图的Hue值为0度,其颜色为红色;(c)图的Hue值为30度,其颜色为橙色。
如图所示,为RGB空间和HSV空间的映射关系。
HLS许多人认为HLS色彩模型比较直觉化,因为它在定义色彩时根据的是「色调」、「明亮」(或亮度)及「饱和度」。
若要指定色彩,请在彩虹频谱上挑选色调、选取其饱和度(色彩的纯度),并设定亮度(亮或暗)。
鲜红色是高度饱和的明亮色彩。
粉蜡笔般的粉红色较不饱和。
色调以度数(0到360度)指定,而饱和度和明亮则是以0到100%的百分比指定。
任何饱和度为零的HLS色彩就是中性灰。
2.2.5IPP库所支持的图像格式
在IPP函数库中,对上述彩色模型都有很好的支持。
为了支持上述的颜色各种模型,IPP对数字图像个格式有多种广泛的支持。
我们在本节做一个具体的介绍。
基于像素的图像格式 基于像素格式图像的特点是其每一个像素的各个通道的信息数据放在一起,IPP库支持多种颜色空间的图像表示方式。
我们首先简单介绍一下啊RGB颜色空间的像素表示法。
除了每像素24位RGB/BGR的图像格式外,IPP的颜色变换函数里还支持32位(RGB通道加上alpha通道)的RGB/BGR图像格式,其基于像素点的格式如表2.1所示(其中,在像素序列一列中,下划线标识的一组代表一个像素的颜色值,不同的下划线组表示相邻像素点的颜色值):
表2.1 24位和32位RGB图像数据格式及IPP函数支持
图像格式
通道个数
像素序列
IPP函数实例
RGB
3
R0G0B0 R1G1B1 R2G2B2
ippiRGBToYUV_8u_C3R
RGB
4
R0G0B0A0 R1G1B1A1
ippiRGBToYUV_8u_AC4R
BGR
3
B0G0R0 B1G1R1 B2G2R2
ippiYCbCrToBGR_8u_P3C3R
BGR
4
B0G0R0A0 B1G1R1A1
ippiBGRToHLS_8u_AC4R
针对16位(每个像素颜色值用16位两个字节来表示)图像格式,由于三个通道只占用两个字节的空间,因此,每一个通道占用不到1个字节,IPP库中支持16位的RGB像素格式有以下几种,如表2.2所示。
表2.2 16位RGB图像数据格式及IPP函数支持
图像格式
高地址字节
(High-orderbyte)
低地址字节
(Low-orderbyte)
IPP函数实例
RGB565
B4B3B2B1B0G5G4G3
G2G1G0R4R3R2R1R0
ippiYCbCrToRGB565_8u16u_C3R
RGB555
X B4B3B2B1B0G4G30
G2G1G0R4R3R2R1R
ippiYCbCrToRGB555_8u16u_C3R
RGB444
XXXX B3B2B1B0G3
G2G1G0R3R2R1R0
ippiYCbCrToRGB444_8u16u_C3R
BGR565
R4R3R2R1R0G5G4G3
G2G1G0B4B3B2B1B0
ippiYCbCrToBGR565_8u16u_C3R
BGR555
X R4R3R2R1R0G4G3
G2G1G0B4B3B2B1B0
ippiYCbCrToBGR555_8u16u_C3R
BGR444
XXXX R3R2R1R0G3
G2G1G0B3B2B1B0
ippiYCbCrToBGR444_8u16u_C3R
R-Red,G-Green,B-Blue,X-freebit(空闲位)
其它部分颜色空间的图像格式如表2.3所示(读者可以进一步参考IPP使用手册)。
表2.3 其它颜色空间图像数据格式及IPP函数支持
图像格式
通道个数
像素序列
IPP函数实例
YUV
3
Y0U0V0 Y1U1V1 Y2U2V2
ippiYUVToRGB_8u_C3R
YUV
4
Y0U0V0