




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学能力拓展训练课程设计说明书摘要当今的信息化社会,图像是人类赖以获取信息的最重要的来源之一。随着计算机技术的迅猛发展,图像技术与计算机技术不断融合,产生了一系列图像处理软件,如VC、MALAB,这些软件的广泛应用为图像技术的发展提供了强大的支持。MATALB已成为公认的最优秀的应用软件之一,具有编程简单、数据可视化功能强、可操作性强等优点,配有功能强大、专业函数丰富的图像处理工具箱,是进行图像处理方面工作必备的软件工具。MATLAB提供了强大的图形功能,利用程序与绘图的结合,可以将结果计算以图形展示。RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。本次课程设计使用RGB颜色模型对24bits彩色图像的颜色进行R,G,B三分量值调节,并显示原始的R,G,B三分量的灰度图像。关键词:MATLAB RGB调整 灰度图像目录摘要I1 设计任务及要求12 原理分析12.1 RGB模式简介12.2 灰度图像13 总体设计34 编程及仿真44.1 RGB颜色调整44.1.1图像读取与显示54.1.2 RGB颜色调整54.2 原始R、G、B三分量灰度图75 结果分析96 小结及体会9参考文献10附录1 仿真图11附录2 源程序1217武汉理工大学能力拓展训练课程设计说明书图像颜色RGB调整的MATLAB实现1 设计任务及要求对24bits彩色图像的颜色,使用RGB颜色模型, 来对其进处理。设计图形界面(GUI)程序,使用三个滑动条实现R,G,B各分量上下可调。调整范围在0到1之间,即:滑动条被拖动时,产生一个0到1之间的系数,乘以该分量的原始值,得到调整后的分量值。显示原始图像,和调整后的图像。同时显示原始的R,G,B三分量的灰度图像。2 原理分析2.1 RGB模式简介RGB是色光的彩色模式。R代表红色,G代表绿色,B代表蓝色,三种色彩叠加形成了其他的色彩。因为三种颜色都有256个亮度水平级,所以三种色彩叠加就能形成1670万种颜色了,也就是“真彩色”,通过它们足以再现绚丽的世界。在RGB模式中,由红、绿、蓝相叠加可以形成其他颜色,因此该模式也叫加色模式(CMYK是一种减色模式)。所有的显示器、投影设备以及电视等许多设备都是依赖于这种加色模式实现的。就编辑图像而言,RGB色彩模式也是最佳的色彩模式,因为它可提供全屏幕的24bit的色彩范围,即“真彩色”显示。但是,如果将RGB模式用于打印就不是最佳的了,因为RGB模式所提供的有些色彩已经超出了打印色彩范围之外,因此在打印一幅真彩的图像时,就必然会损失一部分亮度,并且比较鲜明的色彩肯定会失真的。这主要是因为打印所用的是CMYK模式,而CMYK模式所定义的色彩要比RGB模式定义的色彩少得多,因此打印时,系统将自动进行RGB模式与CMYK模式的转换,这样就难以避免损失一部分颜色,出现打印后的失真现象。2.2 灰度图像一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。红色、绿色、蓝色三个通道的缩览图都是以灰度显示的。用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。 在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像。3 总体设计 图3-1 总体设计界面 软件的总体设计界面布局如图3-1所示,主要分为2个部分:显示区域与操作区域。 显示区域:显示载入原图、通过RGB调整后的图像以及RGB三分量的灰度图像。 操作区域:通过功能键实现对图像的各种处理。在截图中可见,五个功能按键分别对应对图片的处理 ,界面正中部分为图片显示部分,界面中下方为原图RGB值调节的滚动条。4 编程及仿真4.1 RGB颜色调整选择一幅24bits彩色图像,使用三个滑动条实现R,G,B各分量上下可调,显示原图和调整后的图像。程序设计流程图如图4-1所示:开始读取原图像调节三分量滚动条调整后按键是否按下 否 是显示调整后的图像结束图4-1 RGB颜色调整流程图4.1.1图像读取与显示图像读取分两种情况:(1) 若图像为MALAB自带图像,利用matlab中 “imread” 、“imshow”实现图像文件的读取与显示:i=imread(football.jpg); %读取图像axes(handles.axes1); imshow(i); %显示图像(2) 若图像不是MATALB自带图像,可用以下方式实现图像文件的读取与显示:filename,pathname=uigetfile(*.jpg;*.bmp;*.tif;*.*,载入图像);if isequal(filename,0)|isequal(pathname,0) errordlg(没有选中文件,出错); return;else file=pathname,filename; global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作 S=file; x=imread(file); axes(handles.axes1); imshow(x);end 为了方便操作,本次课设采用第一种方式读取和显示图像。4.1.2 RGB颜色调整RGB颜色调整采用三个滑动条分别控制三分量的数值,滑动条被拖动时,产生一个0到1之间的系数,乘以该分量的原始值,得到调整后的分量值。i=imread(football.jpg);R=get(handles.slider1,value); %获得滑动条数值G=get(handles.slider2,value);B=get(handles.slider3,value);c(:,:,1)=i(:,:,1)*R; %获得调整后的分量值c(:,:,2)=i(:,:,2)*G;c(:,:,3)=i(:,:,3)*B;axes(handles.axes2);imshow(c); 用get函数得到滑动条的数值,再乘以分量原始值,得到调整后数值,这样我们就可以通过改变滑动条的数值来调节原图像的RGB各个分量的数值,得到想要的效果。如图4-2:图4-2 RGB颜色调整4.2 原始R、G、B三分量灰度图选择一幅24bits彩色图像,显示原始的R、G、B三分量的灰度图像。分别提取原始图像的R、G、B三分量,用imshow显示各个分量灰度图像。流程图如图4-3:开始读取原图像分量灰度按键是否按下 否 是 显示分量灰度图像 结束图4-3 三分量灰度显示流程图具体程序如下(以红色分量为例):i=imread(football.jpg); axes(handles.axes3);imshow(i(:,:,1); %显示红色分量的灰度图R、G、B三分量的灰度图像如图4-4:图4-4 R、G、B三分量的灰度图5 结果分析 对于一幅24bits彩色图像,利用MATLAB中(:,:,1),(:,:,2),(:,:,3)可分别提取原图像的红、绿、蓝三分量值,再与滑动条数值相乘,实现了对原图像RGB的调整。当滑动条都置0时,即R、G、B分量均为0时,显示一幅黑色图像,当滑动条都置1时,显示原图像,分别调节三分量的值可以得到需要的RGB图像。在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值,灰度范围为0-255。采用分量法对彩色图像进行灰度化,将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,实际应用中可根据需要选取一种灰度图像。6 小结及体会通过此次能力拓展训练课程设计,使我对matlab的使用有了进一步的了解和熟悉。MATLAB软件功能强大,本设计是运用MATLAB进行图像处理,这只是它的一个简单的应用,MATLAB还在多方面有应用,如数学和计算算术发展模型;模拟仿真和原型;数据分析,开发和可视化;科学和工程图形等方面。只有自己在以后的学习中慢慢学习,自己探索,更好的掌握这款软件。当我第一次拿到此次的课设题目时,感到有些无所适从。虽然,原来经常用到MATLAB,但由于对matlab的学习更多的只是停留在理论上的学习,同时也是第一次用MATLAB进行图像处理,所以用起来不是很熟练。虽然对课题感到很懵懂,但在查阅相关资料后,我开始找到了解决问题的路径。我的题目是“图像颜色RGB调整的MATLAB实现”。本课题的重点是句柄的使用、GUI的使用以及matlab中相关图像处理函数使用。 为此,在实践正式开始前,我利用课余时间,学习了matlab教材,专门借阅了利用matlab进行图像处理的相关教程,通过索引网络上的相关资料,为课设做了较为充分的准备。在参考了相关材料及源程序,我对自己要做的课设内容有了进一步的了解,并对matlab的使用有了更深的体会。 当然,在课设的进行过程中,我还是遇到了不少问题。例如,起初由于我对句柄使用以及一些函数使用的不恰当,使得在对图像文件的保存上就遇到了问题,不过最后还是在经过认真思考后解决了。随着课设的进行,我对matlab的的熟悉度逐步加深。 总体来说,此次的课程设计,还是较为满意的。它不但鞭策着我去巩固matlab的基础理论知识,还提高了我对matlab的实际操作运用,使得理论与实践相结合,为进一步学习matlab打下坚实的基础;同时,在实践的工程中,也让我体会到一种努力付出并得到回报的满足感觉。参考文献1 张强,王正林.精通MATLAB图像处理.电子工业出版社.20092 陈杨,陈荣娟.MATLAB6.X图形编程与图像处理.西安电子科技大学出版社.20023何东健.数字图像处理.西安电子科技大学出版社,20034冈萨雷斯等,数字图像处理(Matlab版).电子工业出版社,20055冈萨雷斯等著,阮秋琦等译.数字图像处理 (第二版).电子工业出版社,20076杨杰. 数字图像处理及MATLAB实现.北京:电子工业出版社.2010.2 附录1 仿真图附录2 源程序function varargout = untitled(varargin)% UNTITLED MATLAB code for untitled.fig% UNTITLED, by itself, creates a new UNTITLED or raises the existing% singleton*.% H = UNTITLED returns the handle to a new UNTITLED or the handle to% the existing singleton*.% UNTITLED(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in UNTITLED.M with the given input arguments.% UNTITLED(Property,Value,.) creates a new UNTITLED or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before untitled_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to untitled_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help untitled % Last Modified by GUIDE v2.5 27-Aug-2012 10:39:50 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled_OpeningFcn, . gui_OutputFcn, untitled_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before untitled is made visible.function untitled_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to untitled (see VARARGIN) % Choose default command line output for untitledhandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes untitled wait for user response (see UIRESUME)% uiwait(handles.figure1); % - Outputs from this function are returned to the command line.function varargout = untitled_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)i=imread(football.jpg);%读取图像axes(handles.axes1);imshow(i); %显示图像 % - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)i=imread(football.jpg);R=get(handles.slider1,value); %获取滑动条数值G=get(handles.slider2,value);B=get(handles.slider3,value);c(:,:,1)=i(:,:,1)*R; %得到调整后红色分量值c(:,:,2)=i(:,:,2)*G; %得到调整后绿色分量值c(:,:,3)=i(:,:,3)*B; %得到调整后蓝色分量值axes(handles.axes2);imshow(c); % - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)i=imread(football.jpg);axes(handles.axes3); imshow(i(:,:,1); %显示红色分量灰度图 % - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)i=imread(football.jpg);axes(handles.axes4); imshow(i(:,:,2); %显示绿色分量灰度图 % - Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)i=imread(football.jpg);axes(handles.axes5); imshow(i(:,:,3); %显示蓝色分量灰度图 % - Executes on slider movement.function slider1_Callback(hObject, eventdata, handles)% hObject handle to slider1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,Value) returns position of slider% get(hObject,Min) and get(hObject,Max) to determine range of slider % - Executes during object creation, after setting all properties.function slider1_CreateFcn(hObject, eventdata, handles)% hObject handle to slider1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background.Ifisequal(get(hObject,BackgroundColor),get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,.9 .9 .9);end % - Executes on slider movement.function slider2_Callback(hObject, eventdata, handles)% hObject handle to slider2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,Value) returns position of slider% get(hObject,Min) and get(hObject,Max) to determine range of slider % - Executes during object creation, after setting all properties.function slider2_CreateFcn(hObject, eventdata, handles)% hObject handle to slider2 (see GCBO)% eventdata reserved - to be defined in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 推动县域医疗资源共享与区域合作机制建设
- 生物技术发展与生物医药应用试题
- 建立教育家精神的跨学科整合与人才培养新路径
- 建立农村流行病监测与快速响应体系
- 公司股东股份转让协议细节条款说明
- 光伏发电系统对能源结构转型的影响
- 高新科技成果转化应用合同协议书
- 医疗器械采购合同书细节
- 2025年艺术与文化传承考试试卷及答案分享
- 2025年视觉艺术作品鉴赏考试试卷及答案
- 【薪智】2025地产建筑业行业白皮书人力核心指标行业报告系列
- 监护证考试试题及答案
- 2022石油化工消防设施维护保养技术标准
- 工程研究中心组建方案投资可行性报告
- 建办质202463号危险性较大的分部分项工程专项施工方案严重缺陷清单宣贯(雄安)
- 设备电气接线规范
- 2024-2025学年七年级下学期数学期中测试(浙江杭州市专用)(含答案)
- 宁波鄞州区辅警考试题库
- 酒店客户关系管理试题及答案
- “四通一平”工程验收交接签证书
- 食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置等保证食品安全的规章制度15303
评论
0/150
提交评论