数字图像处理课程设计彩色图像的平衡运算_第1页
数字图像处理课程设计彩色图像的平衡运算_第2页
数字图像处理课程设计彩色图像的平衡运算_第3页
数字图像处理课程设计彩色图像的平衡运算_第4页
数字图像处理课程设计彩色图像的平衡运算_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字图像处理课程设计摘要Matlab1显MathWork公司于1982年推出的一套高性能的数字计算和可视化软件,它集数字分析、矩阵运算、信号处理和图形显示于一体,拥有界面简洁。它的这些特点使其应用的越来越广泛,这对于数字图像处理也是特别方便的。数字图像处理与分析是研究计算机对数字图像的处理,已达到改善视觉效果,便于图像分析和识别的目的。他是集计算机科学、电子学、信息论、控制论、光学、数学、物理学、心理学和生理学等学科的一门综合性边缘学科。随着计算机科学的迅猛发展,以及与近代发展的新理论,如小波分析、马尔科夫随机场、分形学、数学形态学,人工智能和人工神经网络等的结合,计算机图像处理与分析近年来获

2、得了长足的发展,呈现出强大的生命力。数字图像的平衡运算在很多方面可以对图像进行增强,比如加法运算可以使图像变得明亮,细节部分变得清晰,减法使图像的边缘变得模糊,使图像锐化等。基于代数运算对图像的处理是一种方便简洁的处理方法,再有Matlab软件的辅助使过程会变得更简单7L关键词:Matlab;图像处理;平衡运算数字图像处理课程设计目录1课程设计目的1.2课程设计要求2.3Matlab相关知识介绍.3.3.1 MATLAB简介3.3.2 MATLAB在图像处理中的应用4.3.3 图像处理概念4.4相关知识5.5图像平衡运算设计6.5.1 图像白平衡图的运算灰度世界法65.2 基于动态阈值的自动白

3、平衡法9结论1.5参考文献1.6II数字图像处理课程设计数字图像处理课程设计1课程设计目的(1)学习并了解Matlab软件2的实用,并了解Matlab在数字图像8中的应用。学会编写Matlab程序并调试、运行。(2)了解图像的算术运算在数字图像处理中的初步应用。(3)体会图像平衡运算处理的过程和处理前后图像的变化。数字图像处理课程设计2课程设计要求(1)掌握课程设计的相关知识、概念清晰。(2)程序设计合理、能够正确运行。(3)熟悉和掌握Matlab软件。(4)提高分析能力,解决问题的能力,巩固数字图像处理系统中的基本原理与方法。(5) 了解Matlab软件的实用,在Matlab环境下学会用软件

4、对图像进行处理,并获得预期的结果。(6) 了解图像平衡运算增强处理的原理和作用。(7) 对比处理后的图像与原图像,得出处理后的结论。数字图像处理课程设计3Matlab相关知识介绍3.1 MATLAB简介MATLAB的名称源自MatrixLaboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高

5、产品自身的竞争能力。目前MATLAB产品族可以用来进行:数值分析数值和符号计算工程与科学绘图控制系统的设计与仿真数字图像处理数字信号处理通讯系统设计与仿真财务与金融工程MATLAB是MATLAB产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,MATLAB集成了2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言一一M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己的算法。MATLABCompiler是一种编译工具,它能够将那些利用MATLAB提供的编程语言一一M语言编写的函数文件编译生成为函数库、可执行文件、COM组件等等,这样就可以扩

6、展MATLAB功能,使MATLAB能够同其他高级编程语言例如C/C+语言进行混合应用,取长补短,以提高程序的运行效率,丰富程序开发的手段。利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前MATLAB产品的工具箱有四十多个,分别涵盖了数据采集、科学计算、控制系统设计与分析、数字图像处理、金融财务分析以及生物遗传工程等专业领域。数字图像处理课程设计3.2 MATLAB在图像处理中的应用MATLAB7.0提供了20类图像处理函数,涵盖了图像处理包

7、括近期研究成果在内的几乎所有的技术方法21是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按功能可分为图像显示、图像文件I/O、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、结构元素创建与处理、基于边缘的处理、色彩映射表操作、色彩空间变换及图像类型与类型转换Matlab数字图像处理工具箱函数包括以下几类:(1)图像显示函数;(2)图像文件输入、输出函数;(3)图像几何操作函数;(4)图像像素值及统计函数;(5)图像分析函数;(6)图像增强函数;(7)线性滤波函数;(8

8、)二维线性滤波器设计函数;(9)图像变换函数;(10)图像邻域及块操作函数;(11)二值图像操作函数;(12)基于区域的图像处理函数;(13)颜色图操作函数;(14)颜色空间转换函数;(15)图像类型和类型转换函数。3.3 图像处理概念图像处理并不仅限于对图像进行增强、复原和编码,还要对同乡进行分析,图像分析旨在对图像进行描述,即用一组数或符号表征图像中目标区的特征、性质和相互间的关系,为模式识别提供基础。描述一般针对图像或景物中的特定区域或目标。开运算通常用来消除小对象物,在纤细点处分离物体,平滑较大物体的边界的同时不明显改变其面积。数字图像处理课程设计4相关知识人眼之所以能够看到物体的颜色

9、,除了人眼本身的生理机能,还必须有光的照射以及物体对入射光进行有选择地吸收和反射。色温是描述光的不同色彩的一个重要概念。它借用完全辐射体的温度来表示光源的光谱成分,以绝对黑体温度K来度量。物体在不同的光源照射下呈现的颜色是不同的。这是由光源的不同色温决定的,它使得物体的反射光谱较真实色彩有一定的偏差。对同一个白色物体而言,在低温光源照明下,其反射变得偏红;反之,在高温光源下变得偏蓝。人类视觉由于人眼具有的颜色恒常性,可以不管照明光的光谱成分如何变化,人们通常能像在白光下一样来分辨物体的颜色。但是图像采集设备则不然,它采集到的是物体在给定光源下的反射光,这就导致同一个物体在不同的光源下其表现的颜

10、色不同,获得的图像不可避免会出现色彩上的偏差。为了补偿不同光源引起的颜色不同,能真实、正确地再现现实世界中各种色彩的图像,需要采用白平衡技术。白平衡技术的核心,是通过调整由传感器得到的一个彩色视觉信号分量增益(如R,B),使得其组成颜色更接近真实色彩。如果原始场景中的某些象素点应该是白色的,但是由于所获得图像中的相应像素点存在色偏,这些点的R,G,B三个分量的值不再保持相同,通过调整这三个颜色分量的值,使之达到平衡,由此获得对整幅图像的彩色平衡影射关系,通过该影射关系对整幅图像进行处理,即可达到彩色平衡的目的。数字图像处理课程设计5图像平衡运算设计5.1 图像白平衡图的运算灰度世界法要计算未知

11、光源的特性必须从图片中提取相关的统计特性。当我们能够仅使用一个统计特性就获得未知光源特性时,算法就变得非常简单了。在这种情况下,未知光源必须在整幅图片上都是统一的。均值于是就成为了此类方法之下最好的统计指标。而灰色世界法正是利用了均值作为估算未知光源的关键统计量。从物理意义上说,灰色世界法假设自然界景物对于光线的平均反射的均值在总体上是个定值,这个定值近似地为灰色”。在给定图片的白平衡算法中,灰色世界假设图片中的反射面足够丰富,以至于可以作为自然界景物的一个缩影。若这幅图片是在经典光源下拍摄的,具均值就应该等于灰色。若这幅图是在非经典光源下拍摄的,那么均值就会大于或者小于灰色值。而该均值对于灰

12、色的偏离程度则反映了未知光源相对于已知光源的特性。虽然这个方法比较简单,但是仍然可以从一些方面进行调整。一个方面就是对于灰色的定义形式的选择。包括对于光谱的定义、对于光谱成分的定义和在经典光源之下的RGB的响应。另一个更加重要的调整方面就是对于灰色的选择。不管如何定义灰色,最佳的灰色之选必然是自然界实事上出现的灰色。但是这个值是无法获得的(除非是合成数据),所以对于灰色的选择是不同的灰色世界算法的一个重要的区别点。一个方法是假设这个灰色就是实事上的灰色。也就是说反射光谱是均衡的。给定光源之下的RGB响应是纯白色对此光源的响应值的一部分。比方说,可以使用50%作为反射率(虽然这个灰色值对于人眼视

13、觉习惯而言可能过于明亮)。另一种方法,就是根据大量的数据提炼出一个均值,并把它定义为灰色。这种方法提炼的灰色值可能因为数据库使用的不同而有所不同。最终提炼的灰色也能仅适用于原始的数据库,而对于数据库未包括的图片的适用度就会比较差一些。确定下来的灰色表达形式可以用来表示。下标i表示信道,上标c为canonical的首字母,表示经典光源。在确定灰色的表达形式后只要用RGB响应与经典光源下灰色的比值来归一化图片就可以了。假设RGB响应均值为,下标i表示信道,上标U为Unknown的首字母,表示未知光源。那么归一化率的计算式为如下式所示:根据光源转换理论,从未知光源到经典光源下图片表达式的转换式如下式

14、所数字图像处理课程设计定义:那么,灰色世界法的计算过程如下图所示:本实验选择的灰色值为(129,129,129),具体的matlab实现程序如下:%灰色世界法%clearall;%清屏img=imread('b1.bmp');%读取位图的rgb值并存在名为img的三维矩阵中%AveR=mean(mean(img(:,:,1);%计算R通道的均值%AveG=mean(mean(img(:,:,2);%计算G通道的均值%AveB=mean(mean(img(:,:,3);%计算B通道的均值%Qr=129/AveR;%计算R通道的归一化率Qr%Qg=129/AveG;%计算G通道的归

15、一化率Qg%Qb=129/AveB;%计算B通道的归一化率Qb%光源变换%img0(:,:,1)=Qr*img(:,:,1);img0(:,:,2)=Qg*img(:,:,2);img0(:,:,3)=Qb*img(:,:,3);figure,imshow(img0),title('变换后图片');%显示图片%数字图像处理课程设计图5.1原始图像变换后图片图5.2白平衡变换后的图像数字图像处理课程设计5.2 基于动态阈值的自动白平衡法这个算法是通过对图片的ycbcr色空间的分析来确定参考白点的,所以次算法可以说是自适应白平衡算法。本算法选择参考白点的阀值是动态变化的,所以对于不

16、同的图片,具阀值也不同。通过对图片的cbcr坐标空间的分析,我们可以看到一个接近白色的区域(near-w川teregion)是包含着参考白点的。通过这个思路,我们可以通过对图片分区,然后找出参考白点,然后在通过vonkviesmodel来调整图片时期实现白平衡。这样,这个算法就包括了两个步骤了:寻找参考白点,白点调整。寻找参考白点:为了确定一个接近白色的区域,我们就必须把RGB色空间转换成YCbCr色空间。色空间转换后,就是计算Cb、Cr的均值Mb、Mr;然后通过下式计算Cb、Cr的均方差Db、Dr:为了提高算法的稳健性,将图片分为几个区域并且计算每个区域的Mb、Mr、Db、Dr,如果一个区域

17、的Db,Dr太小,那么这个区域就没有足够的色彩变化,就可以丢弃掉了。这样可以避免大面积的统一色调对结果的影响。接下来就可以通过下面的关系式得到接近白色区域的所有像素点了:根据亮度值,我们选择接近白色区域中的10%的候选参考白点最为参考白点。在白点确定后,就可以从参考白点中得到信道增益的值了。为了维持整幅图片的亮度不变,亮度的最大值被用来得到信道增益。所以信道增益不及和参考白点有关还与亮度的最大值有关,其表达式如下:其中是整幅图片像素的亮度最大值,、和是参考白点的RGB信道的均值。最后,根据von-kviesmodel来调整图片,使其达到白平衡的效果。调整的表达式如下:其中RGB是图片的像素点的

18、三个信道值,是调整之后的图片的像素点的三个信道值。其源程序如下:functionW=wbalance(im)clearall;closeall;%读取照片的信息%数字图像处理课程设计filename,pathname=uigetfile('d:/gf1.jpg;');ifisequal(filename,0)disp('UserselectedCancel');elsedisp('Userselected',fullfile(pathname,filename);endfname=strcat(pathname,filename);im=imre

19、ad(fname);im2=im;im1=rgb2ycbcr(im);%将图片的RGB值转换成YCbCr®%Lu=im1(:,:,1);Cb=im1(:,:,2);Cr=im1(:,:,3);xyz=size(im);tst=zeros(x,y);%计算Cb、Cr的均值Mb、Mr%Mb=sum(sum(Cb);Mr=sum(sum(Cr);Mb=Mb/(x*y);Mr=Mr/(x*y);%计算Cb、Cr的均方差Db=sum(sum(Cb-Mb)/(x*y);Dr=sum(sum(Cr-Mr)/(x*y);%根据阀值的要求提取出near-white区域的彳素点%cnt=1;fori=1

20、:xforj=1:yb1=Cb(i,j)-(Mb+Db*sign(Mb);b2=Cr(i,j)-(1.5*Mr+Dr*sign(Mr);if(b1<abs(1.5*Db)&b2<abs(1.5*Dr)Ciny(cnt)=Lu(i,j);10数字图像处理课程设计tst(i,j)=Lu(i,j);cnt=cnt+1;endendendcnt=cnt-1;iy=sort(Ciny,'descend');%将提取出的像素点从亮度值大的点到小的点依次排列nn=round(cnt/10);Ciny2(1:nn)=iy(1:nn);%提取出near-white区域中10%

21、的亮度值较大的像素点做参考白点%提取出参考白点的RGB三信道的值mn=min(Ciny2);c=0;fori=1:xforj=1:yiftst(i,j)<mntst(i,j)=0;elsetst(i,j)=1;c=c+1;endendendR=im(:,:,1);G=im(:,:,2);B=im(:,:,3);R=double(R).*tst;G=double(G).*tst;B=double(B)*tst;%计算参考白点的RGB的均值11数字图像处理课程设计Rav=mean(mean(R);Gav=mean(mean(G);Bav=mean(mean(B);Ymax=double(ma

22、x(max(Lu)/15;%计算出图片的亮度的最大值%计算出RGB三信道的增益%Rgain=Ymax/Rav;Ggain=Ymax/Gav;Bgain=Ymax/Bav;%通过增益调整图片的RGB三信道im(:,:,1)=im(:,:,1)*Rgain;im(:,:,2)=im(:,:,2)*Ggain;im(:,:,3)=im(:,:,3)*Bgain;%显示图片%W=im;figure,imshow(im2,),title('原图');figure,imshow(im,),title('白平衡后的效果图');y=im-im2;disp(y);figure,imshow(y);12数字图像处理课程设计显示运行结果:图5.3原始图像白平衡后的效果图图5.4白平衡后效果图13数字图像处理课程设计图5.5将原始图像和白平衡后的效果图相减的效果图14数字图像处理课程设计结论通过这次的课程设计,我首次通过编写代码来完成对图像的处理,这是一份难得的机会。在刚开始运用MATLAB时,由于长时间的搁置,对其操作可以说是非常的不熟练。但是,当我把以前的知识重温之后,开始慢慢的对MATL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论