灰度阈值处理算法的分析的论文.docx
《灰度阈值处理算法的分析的论文.docx》由会员分享,可在线阅读,更多相关《灰度阈值处理算法的分析的论文.docx(38页珍藏版)》请在冰豆网上搜索。
灰度阈值处理算法的分析的论文
1引言
在对图像的研究和应用中,人们往往仅对图像中的某部分感兴趣,这部分称目标或前景,其它部分称背景。
前景一般对应于图像中特定的具有独特性质的区域。
为了辨识和分析目标,需要将它们分离提取出来,在此基础上才可能对目标进一步利用。
处理图像时受各种条件的限制和干扰,图像的灰度值往往与实际景物不完全匹配,这将直接影响到图像的后续处理。
如果造成这种影响的原因主要是由于被摄物体的远近不同,使得图像中央区域和边缘区域的灰度失衡,或是因摄像头在扫描时各点的灵敏度有较大的差异而产生图像灰度失真,或是因曝光不足而使得图像的灰度变化范围窄,这时就可以采用灰度校正的方法来增强灰度的变化范围、丰富灰度层次,达到增强图像的对比度和分辨率。
灰度阈值处理是数字图像处理技术的一种,数字图像处理技术是20世纪60年代发展起来的一门新兴学科。
主要利用图象中背景与对象之间的灰度差异。
理想状态下,背景与对象之间的灰度差异很大,利用图像的灰度特征来选择一个或多个最佳灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将对应的像素根据比较结果分到合适的类别中。
近30多年来,由于大规模集成电路技术和计算机技术的迅猛发展,离散数学理论的创立和完善,以及军事,医学和工业等方面应用需求的不断增长,数字图像处理的理论进一步完善,使得灰度阈值处理算法在医学,办公和多媒体系统等领域得到了广泛应用,并显示出广阔的应用前景,成为计算机、电子、医学等学科研究的热点。
本论文将详细介绍灰度阈值处理算法及其DSP实现过程。
2概述
彩色图象灰度阈值法是在图象预处理的基础上对信息进行组织与加工,是实现图象自动识别与理解的必不可少的过程,是计算机视觉的中间层次。
简单的说,就是把图象中有意义的区域和背景分离开来,依据的原则是同一区域具有“同质性”。
“区域”是图象相邻的具有类似性质的点组成的集合,同一区域中的象素是相邻的。
2.1彩色图像灰度阈值算法及其应用
彩色图象又称“多光谱图象”,图象上的每个点有多于一个的局部特征,即每个象素点需要有红绿蓝三个基色的三个亮度值表示。
由于光源的光谱是渐变的,产生同样色觉的光波具有一定的波长范围,所以并没有一种颜色可以准确的叫做红、绿、蓝。
为了建立标准,国际照明委员会(CIE)早在1931年就规定3种基本色的波长为R:
700
,G:
,B:
。
计算机与彩色电视机显示彩色图象的原理一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:
根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。
F=r[R]+g[G]+b[B]其中,r、g、b分别为三基色参与混合的系数。
当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。
调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种的色光,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生彩色图象。
这种彩色图象的表示方法称为RGB色彩空间。
RGB型颜色空间这个模型基于笛卡儿坐标系统,如图2.1所示,3个轴分别为R,G,B,他们被归一化后,用r,g,b表示,这样成了一个单位立方体。
原点对应黑色,(1,1,1)对应白色,它们之间的连线分布不同的灰度值,而立方体内其余各点对应于不同的颜色,可用从原点到该点的矢量表示。
根据这个模型,每幅彩色图包括3个独立的基色平面,或者说可以分解到3个平面上。
一幅真彩图象一般用24bit,即R,G,B分量各用8bit表示。
RGB虽然表示直接,但R,G,B数值和色彩的三属性没有直接关系,不能揭示色彩之间的关系。
图2.1RGB单位立方体模型
黑白图象又称为灰度图象、亮度图象或单色图象等,图象中每个象素点只有一个亮度值。
即灰度图只含亮度信息,不含色彩信息的图象。
灰度是指黑白图像中点的颜色深度,代表DPI的值,DPI是指每平方英寸有多少象素点,象素点越大,图象的精确度越大,同时文件的尺寸也越大,当然也不是DPI越大就越好,具体情况具体分析,其范围一般从0到255,白色为255,黑色为0,像素灰度级用8bit表示,所以每个像素都是介于黑色和白色之间的256(
)种灰度中的一种。
灰度图像只有灰度颜色而没有彩色。
通常说的黑白照片,其实包含了黑白之间的所有灰度色调。
从技术上来说,就是具有从黑到白的256种灰度色域(Gamut)的单色图像,故黑白图片也称灰度图像。
创建灰度图是作图像处理最基本的一步。
因为很多图像的处理问题都要在灰度图或者是二值化图像上进行。
由于摄像机抓拍到的图像均为24位真彩色图像,而大多数的图像处理技术都是针对256级灰度图的,所以有必要将彩色图转换为灰度图。
并且彩色图象是多光谱图象,而转换后的黑白图像是单色的灰度图像,其一个像素用一个字节表示该点的灰度值,在图像处理时灰度图象的处理速度比较快。
所以一般处理图像时先要把彩色图像灰度化。
将RGB值转换为灰度的原理,主要利用图象中背景与对象之间的灰度差异。
理想状态下,背景与对象之间的灰度差异很大,利用图像的灰度特征来选择一个或多个最佳灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将对应的像素根据比较结果分到合适的类别中。
灰度值变换函数将亮度范围映射到自身。
表示考察图像亮度的范围,对于8位的图像
=255。
灰度变换就是函数
将每个灰度值
替换为新值
,即
函数
对图像的任一象素点
的灰度值
进行修正,如下:
本次试验中,先把图像归一化。
之后在从RGB空间转换到YCbCr空间,转换到YCbCr空间后,提取Y、Cb和Cr分量后,再将Y值切分。
切分后再从YCbCr空间转换到RGB空间。
Y值切分原理是,将所有灰度小于阈值
的像素判定为0即黑色,灰度值大于t1的像素判定为255即白色,否则这些像素点的灰度值不变。
表达式如下:
上面就是如何将RGB值转换为灰度的过程,灰度阈值法是一种简单有效的图像分割方法,也是图像分割中常用的一种方法,灰度阈值处理的作用很多。
比如,灰度变换可以增加或减少亮度范围。
利用灰度变换,从曝光过渡,曝光不足以及动态范围很小的图像中恢复有用的视觉信息。
当图像的亮度范围太大二不能在一定的媒介上显示的时,如终端,打印机或胶片,也可以利用灰度变化,可以通过区分黑白使图像产生木刻效果;可以通过阈值调整,找到图像中所需的灰度选区;可以通过阈值提高黑白图像的扫描效果;可以通过阈值调整净化图像等。
随着数字图像处理理论的完善,使得灰度阈值处理在很多领域得到了广泛应用。
比如:
(1)在智能交通系统中,彩色图像转化为灰度图像后,在保持原来主要信息的同时还可以比较明显的提高运算速度。
在实际的车牌自动识别系统中,摄像机一般是固定不变的,当车辆出现的信号被检测装置传给摄像机后,摄像机立刻进行图像采集,使得车牌图像的位置在整个画面中的位置基本上是固定的,偏差较小,而且通过观察可以知道,我们国家的车牌绝大多数都是挂在车头的,所以可以部分的忽略外界环境的影响,以简化算法。
(2)在医学应用非常广泛,无论是临床诊断还是病理研究都人量采用灰度阈值处理技术;立体脑图像配准、心脏核磁共振数据的可视化、支气管虚拟内窥镜,它的直观、无创伤、安全方便等优点备受青睐。
(3)在通讯领域中包括图像传输、电视电话、电视会议等,主要是进行图像压缩和传输。
(4)在工业生产中,在生产线对产品进行无损检测是灰度阈值技术的重要应用;该应用从70年代起取得了迅速的发展,主要有产品质量检测、生产过程的自动控制、机器人视觉等;在产品质量检测方面:
检验印刷电路板的质量、监测零部件的装配等;食品、水果质量的检查,纺织品质量检查,焊缝质量或表面缺陷、无损探伤。
总之,图像处理技术应用领域相当广泛,已在国家安全、经济发展、日常生活中充当越来越重要的角色,并显示出广阔的应用前景,对国计民生的作用不可低估。
2.2课题预期目标
本论文介绍了关于灰度阈值处理的图像基础知识,应用MATLAB软件仿真,在DSP的CCS上运行。
图像在处理后应该出现失真现象,因为图像的某些灰度偏高,导致阈值高于平均灰度值,从而在阈值判断时,部分出现了白色“失真”现象;而图像的某些灰度偏低,导致阈值低于平均灰度值,从而在阈值判断时,部分就出现黑色“失真”现象。
3YUV图像的灰度阈值算法原理及仿真
3.1概述
前面我们已经知道计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理,来产生其它的颜色。
自然界的任何一种颜色,都可以通过R,G,B三基色按照不同的比例混合而成。
由于其设备的独立性,它被广泛应用于计算机图形、成像系统和彩色电视中。
但是在图形图像的处理过程中,RGB的效率不是很高,因为在产生任何一种颜色时,R,G,B三者需要同样的带宽。
另外,为了更改一个像素的亮度或色度,必须把R,G,B三者的数值从缓存中读取出来,然后对它们三者作修改,最后还得把它们写回缓存中。
假如可以把亮度和色度分离开来,这个处理过程将会更快。
YUV正是这样的一种色彩空间,它描述了亮度和色差的概念。
那么YUV又从何而来呢?
YUV是由广播电视需求的推动而开发的颜色空间,主要目的是通过压缩色度信息以有效地播送彩色电视图像,是应用于电视传播系统的色彩模,在计算机里YUV颜色模型是仅次于RGB模型的使用较广泛的颜色模型。
对于视频信号的传输,为了减少所需的带宽并与单色电视系统兼容,采用亮度/色度坐标系模型。
但通常用于彩色显示的RGB基色混合了光的亮度和色度属性。
1931年,国际照明委员会(CIE)规定了XYZ彩色坐标,但XYZ基色不能直接用于产生色彩,它主要用于定义其他的基色和彩色的数字说明,如用于传输彩色电视信号的YUV彩色坐标。
在XYZ模型中,Y表示亮度,另外两个分量共同表示色度和饱和度。
除了能分离亮度和色度信息,XYZ另外一个优点是几乎所有的可见彩色都能由非负的激励值规定。
XYZ坐标系中(X,Y,Z)与RGB坐标系(R,G,B)的关系如下:
目前,世界上主要有三种不同的电视系统:
PAL系统用于大多数西欧国家和包括中国以及中东的亚洲国家;NTSC系统用于北美和包括日本在内的部分亚洲国家和地区;SECAM系统用于前苏联、东欧、法国以及一些中东国家。
在PAL制式中采用的就是YUV彩色模型,而YUV就来源于XYZ彩色模型。
根据RGB基色与YUV基色之间的关系,我们把由三极管彩色摄像机或彩色CCD摄像机进行摄像,然后把摄得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。
这种色彩的表示方法就是所谓的YUV色彩模型。
其中的Y,U,V几个字母不是英文单词的组合词,Y是指亮度分量,表示明亮度即(Luminance或Luma),也就是灰阶值;“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。
而“U”和“V”表示的则是色度(Chrominance或Chroma),代表色差。
采用YUV色彩空间的重要性就是它的亮度信号Y和色度信号U、V是分离的,如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像,彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
根据美国国家电视制式委员会规定,当白光的亮度用Y表示时,它和红、绿、蓝三色光的关系可用如下所示的方程描述:
这就是常用的亮度公式。
色差U、V是由B-Y、R-Y按不同的比例压缩而成的,即
其中
为压缩系数。
YUV色彩空间与RGB色彩空间的转换关系如下:
在DVD、摄像机、计算机用的显示器、数字电视及类视频压缩标准(JPEG,MPEG等)中,常用的色彩编码方案是YcbCr。
YCrCb色彩空间则是在世界数字组织视频标准研制过程中作为ITU2RBT.601建议的一部分,其实是YUV经过缩放和偏移的翻版。
YCbCr色彩空间是由YUV色彩空间派生的一种颜色空间,从RGB到YCbCr的转换中,输入、输出都是8位二进制格式。
YCbCr色彩空间与RGB色彩空间的关系如下:
从YCbCr到RGB的逆变换为:
其中Y与YUV中的Y含义一致,Cb、Cr同样都指色彩,只是表示方法不同。
色差U、V与Cb、Cr只相差系数和偏移量,其对应关系如下:
一般人们所讲的YUV大多是指YCbCr,本次毕业设计业所用的是YCbCr原理,以下就称为YUV。
U和V是构成彩色的两个分量,分别用Cr和Cb来表示,Cb指蓝色色度分量,反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异;而Cr指红色色度分量,反映了RGB输入信号红色部分与RGB信号亮度值之间的差异,Cr和Cb作用是描述影像色彩及饱和度,用于指定像素的颜色。
YUV主要用于优化彩色视频信号的传输,采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的,解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽,RGB要求三个独立的视频信号同时传输。
黑白系统只使用Y信息,因为U和V是附加上去的,所以黑白系统仍能够正常显示。
3.2算法原理
在YUV的表示方法中,最主要的优点有两点:
(1)因为Y代表了亮度,所以Y分量包含了灰度图的所有信息,只用Y分量就能完全表示出一幅灰度图来。
当同时考虑U,V分量时,就能够表示出彩色信息来。
这样,用同一种表示方法可以很方便的在灰度和彩色图之间切换,而RGB表示方法就做不到这一点了。
(2)人眼对于亮度信号非常敏感,而对色差信号的敏感程度相对较弱。
也就是说,图象的主要信息包含在Y分量中。
这就提示我们:
如果在对YUV信号进行量化时,可以“偏心”一点,让Y的量化级别多一些,而让UV的量化级别少一些,就可以实现图象信息的压缩。
而RGB的表示方法就做不到这一点,因为RGB三个分量同等重要,缺了谁也不行。
因此YUV中在通过对色度分量进行了采样来减少色度分量后,肉眼将察觉不到的图像质量的变化。
YUV由RGB计算而来,下面就是YUV与RGB相互转换的公式如下(RGB取值范围均为0-255):
YUV主要的采样格式有YUV4:
4:
4、YUV4:
2:
2、YUV4:
1:
1和YUV4:
2:
0。
其中YUV4:
1:
1比较常用,其含义为:
每个点保存一个8bit的亮度值(也就是Y值),每2x2个点保存一个u和v值,图像在肉眼中的感觉不会起太大的变化。
所以,原来用RGB(R,G,B都是8bitunsigned)模型,4个点需要8x3=24bites。
而YUV仅需要8+(8/4)+(8/4)=12bites,平均每个点占12bites这就把图像的数据压缩了一半。
上边仅给出了理论上的示例,在实际数据存储中是有可能是不同的,下面给出几种具体的存储形式:
(1)YUV4:
4:
4
YUV表示全像素点阵,三个信道的抽样率相同,即Y、U、V具有同样的水平和垂直清晰度,在每一个像素位置都有Y、U、V,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用3个字节。
用于高质量视频应用、演播室以及专业视频产品。
表3.1A
四个像素为:
[Y0U0V0][Y1U1V1][Y2U2V2][Y3U3V3]
存放的码流为:
Y0U0V0Y1U1V1Y2U2V2Y3U3V3
(2)YUV4:
2:
2
4:
2:
2表示每4个像素有4个亮度分量,4个色度分量,每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:
4:
4的一半。
这时彩色分量和亮度分量具有同样的垂直清晰度,但水平清晰度彩色分量是亮度分量的一半。
水平方向上,每4个亮度像素具有2个U和2个V。
对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。
表3.2B
四个像素为:
[Y0U0V0][Y1U1V1][Y2U2V2][Y3U3V3]
存放的码流为:
Y0U0Y1V1Y2U2Y3V3
映射出像素点为:
[Y0U0V1][Y1U0V1][Y2U2V3][Y3U2V3]
(3)YUV4:
1:
1
4:
1:
1的色度抽样,是在水平方向上对色度进行4:
1抽样。
对于低端用户和消费类产品这仍然是可以接受的。
对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存。
表3.3C
四个像素为:
[Y0U0V0][Y1U1V1][Y2U2V2][Y3U3V3]
存放的码流为:
Y0U0Y1Y2V2Y3
映射出像素点为:
[Y0U0V2][Y1U0V2][Y2U0V2][Y3U0V2]
(4)YUV4:
2:
0
4:
2:
0是从4:
2:
2标准演变而来。
4:
2:
0并不意味着只有Y和U而没有V分量。
为进一步减少数据量,在保证亮度信号抽样频率不变的情况下,将色度信号的传输行降低一半,也可以说在保证亮度信号抽样点不变的情况下,将色度信号的抽样点减少一半,降低其垂直清晰度,即它是对每行扫描线来说,只有一种色度分量以2:
1的抽样率存储,即每4个像素有4个亮度分量,2个色度分量,仅采样奇数扫描线,相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:
2:
0的话,下一行就是4:
0:
2,再下一行是4:
2:
0...以此类推。
对每个色度分量来说,水平方向和竖直方向的抽样率都是2:
1,所以可以说色度的抽样率是4:
1。
对非压缩的8比特量化的视频来说,每个由2x2个2行2列相邻的像素组成的宏像素需要占用6字节内存。
在YUV4:
2:
2、YUV4:
1:
1中,YUV4:
2:
0的彩色分量最少,最适合于进行数字压缩。
是便携式视频设备(MPEG-4)、电视会议(H.263)及DVD最常用格式。
表3.4D
八个像素为
[Y0U0V0][Y1U1V1][Y2U2V2][Y3U3V3]
存放的码流为:
Y0U0Y1Y2U2Y3Y5V5Y6Y7V7Y8
映射出的像素点为:
[Y0U0V5][Y1U0V5][Y2U2V7][Y3U2V7]Y5U0V5][Y6U0V5][Y7U2V7][Y8U2V7]
3.3算法MATLAB仿真
由MathWork公司开发的Matlab语言语法限制不严格,程序设计自由度大、可移植性好。
Matlab具有适应于图像分析和处理的工具箱,常用的有图像处理、小波分析及数字信号处理工具箱。
利用这些工具箱,我们可以方便的对图像的性质进行深入研究。
Matlab图像处理工具箱支持索引图像、RGB图像、灰度图像、二进制图像并能操作.bmp、.jpg、.tif等多种图像格式文件。
本次试验中图像处理所用的基本操作:
读取和显示图像可以通过imread()和imshow()来实现;图像的输出用imwrite()函数就可以很方便的把图像输出到硬盘上;另外还可以用imcrop()、imrisize()、imrotate()等来实现图像的裁剪、缩放和旋转等功能。
Matlab图像处理工具箱提供了不同图像类型相互转换的大量函数,如rgb2ycbcr()RGB彩色空间转换成YUV彩色空间。
3.3.1灰度阈值处理流程图
图3.1灰度阈值处理流程图
3.3.2RGB图像转换成灰度的代码:
(1)RGB转换到YUV:
A=imread('filename.tiff');
%读取原图像
A=double(A)/255;
%把图像归一化
B=rgb2ycbcr(A);
%转换到YCbCr空间
imshow(B);
%显示转换后的图像
title'RGBtoYUV'
%给图像命名
(2)提取Cb分量:
A=imread('filename.tiff');
%读取原图像
A=double(A)/255;
%把图像归一化
B=rgb2ycbcr(A);
%转换到YCbCr空间
imshow(B(:
:
2));
%显示转换后的图像
titleC_b分量
%给图像命名
(3)提取Cr分量:
A=imread('filename.tiff');
%读取原图像
A=double(A)/255;
%把图像归一化
B=rgb2ycbcr(A);
%转换到YCbCr空间
imshow(B(:
:
3));
%显示转换后的图像
titleC_r分量
%给图像命名
(4)提取Y值分量:
A=imread('filename.tiff');
%读取原图像
A=double(A)/255;
%把图像归一化
B=rgb2ycbcr(A);
%转换到YCbCr空间
imshow(B(:
:
1));
%显示转换后的图像
title'Y分量'
%给图像命名
(5)切分Y值分量:
A=imread('filename.tiff');
%读取原图像
A=double(A)/255;
%把图像归一化
B=rgb2ycbcr(A);
%转换到YCbCr空间
[m,n]=size(C);
C=B(:
:
1);
%把B值赋予C
fori=1:
m
%for循环,切分Y值
forj=1:
n
x=C(i,j);
if(x<=0.3)
C(i,j)=0;
end
if(x>0.7)
C(i,j)=1;
end
end
end
%把C值赋予B
B(:
:
1)=C;
imshow(B(:
:
1));
%显示转换后的图像
title'Y切分
%给图像命名
(6)YUV转换到RGB:
D=ycbcr2rgb(B);
%从YCbCr空间转换到RGB空间
imshow(D);
%显示转换后的图像
title'YUVtoRGB'
%给图像命名
注:
在试验过程中,按照流程图进行的试验时,在转换到YUV空间中提取分量时Y值分量一定要最后提取否则后续的操作都是无意义的。
3.3.3RGB图像转换成灰度的实现过程
本次实验共用四幅图像,我们先着重讲一幅图片,其他三幅图片所做的实验效果对比如下面的图片所示。
首先用pepper图片讲解我们所做实验的整个流程如下:
(1)原彩色图象如图3.2P-a,3.3L-a,3.4B-a,3.5M-a。
(2)在YUV空间中提取Cb分量,如图3.6P-b,3.7L-b,3.8B-b,3.9M-b。
(3)在YUV空间中提取Cr分量,如图3.10P-c,3.11L-c,3.12B-c,3.13M-c。
(4)在YUV空间中提取Y分量,如图3.14P-d,3.15L-d,3.16B-d,3.17M-d。
(5)在YUV空间中提取切分后Y分量,如图3.18P-e,3.19L-e,3.20B-e,3.21M-e。
(6)由YUV空间转换到RGB彩色空间图像,如图3.22P-f,3.23L-f,3.24B-f,3.25M-f。