资源描述
课程设计(论文)题 目彩色图像融合姓 名学 号指 导 老 师指导教师职称年级专业班级所 在 学 院2015年7 月 8日请预览后下载!目录目录I摘要II前言III 课题背景11.1 课题要求11.2 课题意义11.3 文献综述2 设计方案论证32.1 实验基本步骤32.2 理论依据3 图像融合的设计73.1 图像对象的分割73.2 分割对象的场景融入8 GUI界面设计及滤波结果分析94.1 GUI界面设计94.2 滤波结果及分析10 4.2.1 滤波结果图10 4.2.2 结果分析11 总结12致谢13参考文献14程序代码15请预览后下载!摘要本课题主要是运用MATLAB 7.0,解决数字图像处理的彩色图像融合问题的开发程序。我们对被处理的图像进行二值化、分割操作得到图像中的想要的对象,然后对分割后的图像和背景图像进行HSI色彩空间转换,最后将分割后的对象嵌入到背景图像中。本文还给出了对这一程序的测试情况、测试结果的分析和完整程序代码。关键词:二值化、图像分割、HSI空间转换请预览后下载!前言本文详细介绍了关于彩色图像融合课题内容的应用程序的设计与开发。全文共5章。第1章是介绍了本次课题的课题要求、课题意义和文献综述。第2章介绍了实验的基本步骤和这次试验的主要理论原理支持。第3章主要介绍了关于图像融合的主要算法实现。全文的核心部分都写在程序代码中。第4章主要是由两部分构成,包括程序运行后的结果和对结果的具体分析。第5章是对彩色图像融合问题程序开发过程的总结。总结了本次课程设计的意义,以及谈到了我在本次课程设计中的收获与感想。全文的最后是致谢、参考文献。XX2015-07-08 于武汉工程大学理学院请预览后下载! 课题背景1.1 课题要求对象与场景融合是图像融合的一个应用方向,它是指把感兴趣的目标对象从它原来所在的场景中分割出来后,通过叠加、组合和加工处理合成到另一个场景中去,所形成的新的对象场景图像看起来必须是真实自然的,从而创造出新的图像效果。对象场景融合在图像编辑领域有非常广泛的应用,特别是在影视制作过程中,很多镜头无法通过实地拍摄获得,这些镜头就可以借助对象场景融合技术来实现。对象与场景融合技术的关键是如何使融合得到的效果逼真,也就是说使得目标对象在新的场景里看起来光照一致、过渡自然,而不会出现明显的人工拼接痕迹。1.2 课题意义数字信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。通过语言相互传递信息是人类最重要的基本功能之一。语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。 数字信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。请预览后下载!1.3 文献综述文献1较详细地介绍了数字图像处理这门学科的发展历史和经典定义定理,对于解决本次课题内容提供了很好地参考。文献2介绍了关于计算机图像处理的方法和程序代码实现,对于本次课题内容起到了很大的帮助。请预览后下载!设计方案论证2.1 实验基本步骤 方案步骤:(1)读入包含对象的图像,(2)分割图像中的对象,(3)将已经分割好的对象进行颜色空间转换,比如转换到IHS色彩空间,(4)读入背景图像,也转换到HIS空间,(5)将分割出的对象嵌入到背景图像中合适的位置,并且进行光照和颜色的处理,让效果看起来真实可信。(6)设计GUI界面,完成软件。2.2 理论依据1 图像二值化图像的二值化处理就是将图像上的点的灰度置为0或255,也就是将整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于在对图像做进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。为了得到理想的二值图像,一般采用封闭、连通的边界定义不交叠的区域。所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。如果某特定物体在内部有均匀一致的灰度值,并且其处在一个具有其他等级灰度值的均匀背景下,使用阈值法就可以得到比较的分割效果。如果物体同背景的差别表现不在灰度值上(比如纹理不同),可以将这个差别特征转换为灰度的差别,然后利用阈值选取技术来分割该图像。动态调节阈值实现图像的二值化可动态观察其分割图像的具体结果。请预览后下载!2 图像分割把图像分解为一些特定的性质相似的部分(区域或对象),并用这些部分对图像进行分析和描述。一幅图像往往包含许多不同类型的区域,如物体、环境和背景等。图像分析的一个重要方法就是用它们作为基本组成成分对图像进行描述。例如为了在气泡室图片中检出质点碰撞形式并判定其发生位置,就要在图像中分割出气泡的轨迹及其端点。为了从输入的文本中识别出一串字符,首先就要把各个字符从背景和其他字符中分离出来。因此把图像分割为若干子图像,并利用各子图像的特性和它们之间的关系描述图像,对于图像识别和解释、物景分析以及图像的分块处理和存储都有很大的意义。3 RGB和HSI的互相转换1) 将颜色从RGB转换为HSI给出一幅RGB彩色格式的图像,那么每个RGB像素的H分量可用下面的公式得到:其中:饱和度由下面的式子给出:请预览后下载!最后,亮度由下面的式子给出:假定RGB值已经归一化在0,1之间,角度使用关于HSI空间的红轴来度量。将从H的公式中得出的所有结果除以360,即可将色调归一化在0,1之间。如果给出的RGB值在0,1之间,那么其他的两个HSI分量就已经在0,1之间了。2) 将颜色从HSI转换为RGB给定在0,1之间的HSI值,我们现在希望找出同一范围内相应的RGB值。可用的公式依赖于H的值。有三个感兴趣的部分,正如早些时候提到的那样,分别对应原色之间相隔120的范围。我们用360乘以H,这样就将色调的值还原成了原来的范围 0, 360。RG区域 如果H在这个区域内,那么RGB分量由下式给出:和GB区域 如果给出的H值在这个区域内,我们就先从中减去120:那么,这时RGB分量是:请预览后下载!并且BR区域(240H360) 最后,如果H在这个区域内,我们就从中减去240:RGB分量分别是:其中:和请预览后下载!图像融合的设计3.1 图像对象的分割我们通过对图像进行二值化处理、滤波、构造模板以及图像矩阵的像素相乘来得到分割图像的对象。主要程序代码如下:I = imread(C:MATLAB7worksmall.jpg) ;% 载入图像axes(handles.axes3);imshow(I);title(原图像,Fonts,8, FontWeight, Bold);I=imresize(I,120,180);I1 = rgb2hsv(I); % RGB转换到HSV空间h = I1(:,:,3); % S层 bw = im2bw(h ,graythresh(h); % 二值化bw = bw; % 取反A = imfill(bw, holes); % 补洞B = imopen(A, strel(disk, 1); % 图像开操作C = bwareaopen(B, 2000); % 面积滤波axes(handles.axes4); imshow(C); title(二值图像,Fonts,8, FontWeight, Bold);bw2 = cat(3, A, B, C); % 构造模板I2 = I .* uint8(bw2); % 点乘axes(handles.axes5); imshow(I2); title(分割图像,Fonts,8,FontWeight, Bold);请预览后下载!分割对象的场景融入通过对图像对象进行适当的大小调整和平移,我们将其叠加进背景图像适当的位置中。主要程序代码如下:I=imresize(I,120,180);M,N,h=size(Img);%取背景图的大小B=zeros(M,N,h);%建全零矩阵for h=1:3 for n=1:180 for m=1:120B(m+50,n+100,h)=I2(m,n,h); end endendb=uint8(B);c=b+Img;请预览后下载!GUI界面设计及滤波结果分析4.1 GUI界面设计在控件布局设计区放置个2Panel控件、7个Axes控件、9个Text控件、6个PushButton控件、2个RadioButton控件、1个ButtonGroup控件。程序运行后的界面外观如下:图4-1 程序运行后的界面外观图请预览后下载!4.2 滤波结果及分析4.2.1 滤波结果图图4-2 图像融合结果图请预览后下载!结果分析从图中可以看出,我们将图像中的对象提取出来的效果显著,基本上将目标区域分割出来,然后对于图像的HSI空间转换的效果很差,最后两张图像融合的效果一般,对象并不能与背景图像中的颜色一致,不能满足真实可信的效果。我们还需要进一步地对颜色进行还原处理。请预览后下载!总结通过此次课程设计,使我更加扎实的掌握了有关数字图像处理方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手操作,使我们掌握的知识不再是纸上谈兵。 过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。请预览后下载!致谢一份课程设计的总结,一份对老师的感谢。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我们。让我们在数理统计方面得到了深入的了解,在数据统计与分析方面得到了进一步认识和理解。在此,我向严老师致以诚挚的谢意和崇高的敬意。同时我还要感谢我的同学们。在论文设计中,当我遇到问题时,他们都给了我很多的建议和帮助,我不仅得到了新的知识,更得到了更深厚的友谊。请预览后下载!参考文献1 冈萨雷斯,伍兹.数字图像处理M.北京:电子工业出版社,2010.2 贾永红.计算机图像处理M.武汉:武汉大学出版社.2007. 请预览后下载!程序代码function varargout = Comphoto(varargin)% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, Comphoto_OpeningFcn, . gui_OutputFcn, Comphoto_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% - Executes just before Comphoto is made visible.function Comphoto_OpeningFcn(hObject, eventdata, handles, varargin)% Choose default command line output for Comphotohandles.output = hObject;% Update handles structureguidata(hObject, handles);% - Outputs from this function are returned to the command line.function varargout = Comphoto_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structurevarargout1 = handles.output;% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)Img = imread(C:MATLAB7worksea.jpg) ;% 载入背景图像I = imread(C:MATLAB7worksmall.jpg) ;% 载入图像axes(handles.axes1);imshow(I);axes(handles.axes2);imshow(Img);axes(handles.axes3);imshow(I);title(原图像,Fonts,8, FontWeight, Bold);I=imresize(I,120,180);请预览后下载!I1 = rgb2hsv(I); % RGB转换到HSV空间h = I1(:,:,3); % S层 bw = im2bw(h ,graythresh(h); % 二值化bw = bw; % 取反A = imfill(bw, holes); % 补洞B = imopen(A, strel(disk, 1); % 图像开操作C = bwareaopen(B, 2000); % 面积滤波axes(handles.axes4); imshow(C); title(二值图像,Fonts,8, FontWeight, Bold);bw2 = cat(3, A, B, C); % 构造模板I2 = I .* uint8(bw2); % 点乘axes(handles.axes5); imshow(I2); title(分割图像,Fonts,8,FontWeight, Bold);M,N,h=size(Img);%取背景图的大小B=zeros(M,N,h);%建全零矩阵for h=1:3 for n=1:180 for m=1:120B(m+50,n+100,h)=I2(m,n,h); end endendb=uint8(B);c=b+Img;b=rgb2hsi(b);%RGB转换为HSIImg=rgb2hsi(Img);axes(handles.axes6); imshow(b); title(HSI对象图像,Fonts,8, FontWeight, Bold);axes(handles.axes7); imshow(Img); title(HSI背景图像,Fonts,8, FontWeight, Bold);axes(handles.axes8); imshow(c/1.2);function pushbutton5_Callback(hObject, eventdata, handles)close (注:可编辑下载,若有不当之处,请指正,谢谢!) 请预览后下载!
展开阅读全文