图像颜色RGB调整的MATLAB实现_第1页
图像颜色RGB调整的MATLAB实现_第2页
图像颜色RGB调整的MATLAB实现_第3页
图像颜色RGB调整的MATLAB实现_第4页
图像颜色RGB调整的MATLAB实现_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

图像颜色RGB调整的MATLAB实现图像颜色RGB调整的MATLAB实现/NUM.MATLAB简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室图1-1MATLAB工作界面)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。2.图像处理简介数字图像处理,通俗地讲是指应用计算机以及数字设备对图像进行加工处理的技术。2.1.数字图像处理发展概述20世纪20年代,图像处理技术首次应用于改善伦敦到纽约之间的海底电缆传送图片的质量。1964年,美国喷气推动实验室用计算机成功地对4000多张月球照片进行处理。70年代中期,随着离散数学理论的创立和完善,数字图像处理技术得到了迅猛的发展,理论和方法不断完善。90年代,随着个人计算机进入家庭,硬件价格不断下降,数字世界逐渐进入人们的生活。2.2.图像处理技术图像处理技术包括:1.图像信息的获取:为了在计算机上进行图像处理,必须把作为处理对象的模拟图像转换成数字图像信息。图像信息的获取,一般包括图像的摄取、转换及数字化等几个步骤。该部分主要由处理系统硬件实现。2.图像信息的存储于交换:由于数字图像信息量大,且在处理过程中必须对数据进行存储和交换,为了解决大数据量及交换与传输时间的矛盾,通常除采用大容量机内存存储器进行并行传送,直接存储访问外,还必须采用外部磁盘、光盘及磁带存储方式,从而达到提高处理的目的。该部分组要功能也由硬件完成。3.数字图像处理:数字图像处理,即把在空间上离散的,在幅度上量化分层的数字图像,在经过一些特定数理模式的加工处理,以达到有利于人眼视觉或某种接收系统所需要的图像过程。4.数字图像通讯:80年代以来,由于计算机技术和超大规模集成电路技术的巨大发展,推动了通讯技术(包括语言、数据、图像)的飞速发展。因为图像通讯具有形象直观、可靠、高效率等一系列优点,尤其是数字图像通讯比模拟图像通讯更具抗干扰性,便于压缩编码处理和易于加密,因此在图像通讯工程中数字处理技术获得广泛应用。5.图像的输出和显示:数字图像处理的最终目的是为了提供便于人眼或接收系统解释和社别图像,因此图像的输出和显示很重要。一般图像输出的方式可分为硬拷贝,诸如照相、打印、扫描鼓等,还有所谓的软拷贝,诸如CRT监视器及各种新型的平板监视器等。3.图像处理的内容图像处理的内容包括:1.图像数字化:图像数字化即图像采样和量化,是指把连续的图像信号变为离散的数字信号,以适应计算机的处理。2.图像编码压缩:把数字化的图像数据按一定规则进行排列或运算过程,称为图像编码。利用图像本身的内在特性,通过某种特殊的编码方式,达到减少原图像数据时空占用量的处理叫做图像压缩编码。3.图像变换:一般指利用正交变换的性质和特点,将图像转换到变换域中进行处理,并且大部分变换都有快速算法。4.图像增强:图像增强的目的是突出图像中所感兴趣的部分,如强化图像的高频分量,可使图像中物体轮廓清晰,细节明显。5.图像复原:图像复原是尽可能恢复图像的本来面貌,是对图像整体而言,而且在复原处理时,往往必须追求降质原因,以便“对症下药”,而增强往往是局部。6.图像分割:将图像中包含的物体,按其灰度或几何特性分割,并进行处理分析,从中提取有效分量、数据等有用信息。这是进一步进行图像处理如模式识别、机器视觉等技术的基础。7.图像分类:简单地说就是在图像分割的基础上,进行我体的判决分类。8.图像重建:它是对一些三维物体,应用x射线、超声波等物理方法,取得物体内部结构数据,再将这些数据进行运算处理而构成物体内部某些部位的图像。目前图像重建最成功的例子是CT技术(计算机断层扫描成像技术)、彩色超声波等。RGB模型RGB模型也称为加色法混色模型。它是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。其混色规律是:以等量的红、绿、蓝基色光混合时。如果是三原色光中的两种色光(注意,不是颜料)进行等比例混合的话,那么,得到的结果是品红、黄、青三色光。红+绿=黄红+蓝=品红绿+蓝=青红+绿+蓝=白三种基色光全无=黑这是色光混合,称为加色混合法。加色法的混色规律可用图表示。其配色方程描述:F(物体颜色)=R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比)如果就是这三种颜料相混的话,那么,大体上,红+绿=暗灰红;红+蓝=紫色;绿+蓝=青绿色。这是色彩混合,称为减色混合法。切记,色光混合跟颜料混合是不同性质的。4.GUI界面设定1.在matlab命令窗口中运行guide命令,来打开GUIDE界面,如下:图4-1GUIDE界面2.然后,选择空模板(BlangGUI),点击OK,即可打开GUIDE的设计界面,如下:图4-2GUIDE设计界面3.点击工具栏上的菜单编辑器(MenuEditor),打开菜单编辑器,如下:图4-3菜单编辑器在MenuBar中新建一个菜单项,名字为“文件”,其他设置请看下图:图4-4菜单属性设置5.在“文件”菜单下添加菜单项:“打开”,“保存”,“退出”。见下图:图4-5完成后的菜单编辑器6.保存我的界面为pjimage.fig.保存完毕之后,会自动打开pjimage.m文件,而我们所有的程序都是要写在这个M文件里面的。在界面上,单击鼠标右键选择“PropertyInspector”,即可打开属性窗口。设置当前Figure窗口的Tag属性为:figure_pjimage,窗口的标题(Name属性)为:图像处理图像处理实例,如下:图4-6GUI界面属性设置7.然后点击GUI界面坐侧的Axes按钮在界面设置出两个坐标空间,并用上面的方法将两个坐标空间的Tag属性改为“axes_src”和“axes_dst”;然后点击GUI界面坐厕的pushButton按钮,在界面上设置两个按钮1,并用上面的方法将两个按钮的Tag属性分别设置为“pushbutton_cf”和“pushbutton_hz”,String属性分别设置为“DCTbutton”和“HZButton”,BabckgroundClor属性分别设置为黄色和红色。设置完后进行保存,得到界面如下图上所示:图4-7设置完成的GUI界面5.仿真处理设计好图形界面(GUI)程序,使用三个滑动条实现R,G,B各分量上下可调,即是如下图所示。图5-1原始图像和调节后的图像改变其红绿蓝系数,得到如下图图5-2改变滑动条后的调整图像至此,该过程结束,达到题目的要求,使用三个滑动条实现R,G,B各分量上下可调。调整范围在0到1之间,显示原始图像,和调整后的图像。同时显示原始的R,G,B三分量的灰度图像。图像颜色RGB调整的MATLAB实现完成。总结本次的基础强化训练结束后,我感触颇深。想到万事开头难,的确是这样的。刚开始接触MATLAB时,感觉什么都不懂,因为这个软件的复杂性远远超出了其他的软件,全英文不说,还比较繁琐。其实本次课程设计的难点就是在程序编程上面和软件的使用上。如果以前没用过这个软件,我们会很难下手,但是通过慢慢的熟悉这个软件后,发现其实主要的难点就是在程序上了。如果没有程序还是很难做出来的。因为本次课设所涉及到的知识相Matlab的GUI界面以及所涉及到的图像处理知识其实都只是皮毛。在做起来后,发现网上查阅资料是很困难的,因为网上资料不全,所以只好查阅相关资料,查阅相关MATLAB书籍,在有了相关的知识储备后,开始着手设计,一次次是失败中找原因,有时候找不出来真的是很急,这是候我很感谢同学的无私帮助,关于好多问题,我请教的他们,没有同学的帮忙这次基础强化训练真的是很难做出来的。当最后程序写完,把仿真做完时,我终于长长的舒了口气。本次基础强化训练大大的加强了我对MATLAB软件的熟悉程度和处理问题能力,同时也锻炼了我查阅相关资料的能力和自我思考能力。参考文献[1].李显宏《MATLAB7.x界面设计与编译技巧》电子工业出版社2006[2].飞思科技产品研发中心《MATLAB6.5辅助图像处理》电子工业出版社2003[3].罗军辉冯平《MATLAB7.0在图像处理中的应用》机械工业出版社2007[4].秦襄培郑贤中《MATLAB图像处理宝典》电子工业出版社2011[5].贺兴华周媛媛《MATLAB7.x图像处理》人民邮电出版社2006附录程序清单:functionvarargout=pjimage(varargin)%PJIMAGEMATLABcodeforpjimage.fig%PJIMAGE,byitself,createsanewPJIMAGEorraisestheexisting%singleton*.%%H=PJIMAGEreturnsthehandletoanewPJIMAGEorthehandleto%theexistingsingleton*.%%PJIMAGE('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinPJIMAGE.Mwiththegiveninputarguments.%%PJIMAGE('Property','Value',...)createsanewPJIMAGEorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforepjimage_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtopjimage_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone%instancetorun(singleton)".%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelppjimage%LastModifiedbyGUIDEv2.506-Sep-201316:11:48%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@pjimage_OpeningFcn,...'gui_OutputFcn',@pjimage_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%Executesjustbeforepjimageismadevisible.functionpjimage_OpeningFcn(hObject,eventdata,handles,varargin)setappdata(handles.figure_pjimage,'img_src',0);%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstopjimage(seeVARARGIN)%Choosedefaultcommandlineoutputforpjimagehandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakespjimagewaitforuserresponse(seeUIRESUME)%uiwait(handles.figure_pjimage);%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=pjimage_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%%Executesonslidermovement.functionslider1_Callback(hObject,eventdata,handles)%hObjecthandletoslider1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'Value')returnspositionofslider%get(hObject,'Min')andget(hObject,'Max')todeterminerangeofsliderglobalRglobalGglobalBglobalval1globalval2globalval3val1=get(hObject,'Value');set(handles.text1,'String',num2str(val1));axes(handles.axes3);imshow(val1*R);axes(handles.axes4);imshow(val2*G);axes(handles.axes5);imshow(val3*B);axes(handles.axes2);I=cat(3,val1*R,val2*G,val3*B);imshow(I);%Executesduringobjectcreation,aftersettingallproperties.functionslider1_CreateFcn(hObject,eventdata,handles)%hObjecthandletoslider1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:slidercontrolsusuallyhavealightgraybackground.ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor',[.9.9.9]);end%Executesonslidermovement.functionslider2_Callback(hObject,eventdata,handles)%hObjecthandletoslider2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'Value')returnspositionofslider%get(hObject,'Min')andget(hObject,'Max')todeterminerangeofsliderglobalRglobalGglobalBglobalval1globalval2globalval3val2=get(hObject,'Value');set(handles.text2,'String',num2str(val2));axes(handles.axes3);imshow(val1*R);axes(handles.axes4);imshow(val2*G);axes(handles.axes5);imshow(val3*B);axes(handles.axes2);I=cat(3,val1*R,val2*G,val3*B);imshow(I);%Executesduringobjectcreation,aftersettingallproperties.functionslider2_CreateFcn(hObject,eventdata,handles)%hObjecthandletoslider2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:slidercontrolsusuallyhavealightgraybackground.ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor',[.9.9.9]);end%Executesonslidermovement.functionslider3_Callback(hObject,eventdata,handles)%hObjecthandletoslider3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'Value')returnspositionofslider%get(hObject,'Min')andget(hObject,'Max')todeterminerangeofsliderglobalRglobalGglobalBglobalval1globalval2globalval3val3=get(hObject,'Value');set(handles.text3,'String',num2str(val3));axes(handles.axes3);imshow(val1*R);axes(handles.axes4);imshow(val2*G);axes(handles.axes5);imshow(val3*B);axes(handles.axes2);I=cat(3,val1*R,val2*G,val3*B);imshow(I);%Executesduringobjectcreation,aftersettingallproperties.functionslider3_CreateFcn(hObject,eventdata,handles)%hObjecthandletoslider3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:slidercontrolsusuallyhavealightgraybackground.ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor',[.9.9.9]);end%functionUntitled_1_Callback(hObject,eventdata,handles)%hObjecthandletoUntitled_1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%functionm_file_open_Callback(hObject,eventdata,handles)%hObjecthandletom_file_open(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)[filename,pathname]=uigetfile(...{'*.bmp;*.jpg;*.png;*.jpeg','ImageFiles(*.bmp,*.jpg,*.png,*.jpeg)';...'*.*','AllFiles(*.*)'},...'Pickanimage');ifisequal(filename,0)||isequal(pathname,0),return;endglobalRglobalGglobalBaxes(handles.axes1);fpath=[pathnamefilename];w=imread(fpath);imshow(w);A=w;R=A(:,:,1);G=A(:,:,2);B=A(:,:,3);%functionm_file_save_Callback(hObject,eventdata,handles)[filename,pathname]=uiputfile({'*.bmp','BMPfiles';'*.jpg;','JPGfiles'},'PickanImage');ifisequal(filename,0)||isequal(pathname,0)return;elsefpath=fullfile(pathname,filename);endimg_src=getappdata(handles.figure_pjimage,'img_src');imwrite(imc_src,fpath);%hObjecthandletom_file_save(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%functionm_file_exit_Callback(hObject,eventdata,handles)close(handles.figure_pjimage);%hObjecthandletom_file_exit(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Executesonslidermovement.functionslider1_Callback(hObject,eventdata,handles)%hObjecthandletoslider1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'Value')returnspositionofslider%get(hObject,'Min')andget(hObject,'Max')todeterminerangeofsliderglobalRglobalGglobalBval1=get(hObject,'Value');set(handles.text1,'String',num2str(val1));axes(handles.axes3);imshow(val1*R);%Executesduringobjectcreation,aftersettingallproperties.functionslider1_CreateFcn(hObject,eventdata,handles)%hObjecthandletoslider1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:slidercontrolsusuallyhavealightgraybackground.ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor',[.9.9.9]);end%Executesonslidermovement.functionslider2_Callback(hObject,eventdata,handles)%hObjecthandletoslider2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:ge

温馨提示

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

评论

0/150

提交评论