10405321图形图像期末大作业汇总.docx
- 文档编号:24728737
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:20
- 大小:1.34MB
10405321图形图像期末大作业汇总.docx
《10405321图形图像期末大作业汇总.docx》由会员分享,可在线阅读,更多相关《10405321图形图像期末大作业汇总.docx(20页珍藏版)》请在冰豆网上搜索。
10405321图形图像期末大作业汇总
《数字图像处理基础》期末大作业
201010405321
一、设计开发
用matlab编程工具,编写具有操作界面的应用程序,通过菜单、对话框,选项框等界面控制,对算法进行演示。
需要在应用系统中实现的算法及功能包括:
1.图像增强算法
(1)灰度线形变换:
亮度及对比度可以调节(通过控制参数的改变,能够实时预览变化结果);
(2)直方图均衡:
可在界面上对比均衡前后的效果。
2.图像变换算法
(1)对一幅彩色图像进行DCT变换和反变换,对比结果和原图;
(2)仅保留左上角16X16的DCT系数,进行反变换,计算结果图的信噪比SNR。
3.图像分割算法
(1)采用最优阈值算法对灰度图像进行分割;
(2)用Canny算法对灰度图像进行边缘检测;
(3)用hough变换,检测边缘图像中的直线,并用不同颜色将检测出的直线叠加显示到原图像上。
4.实验参考图像:
(1)彩色图像:
适用于算法一、算法二;
(2)灰度图像:
适用于算法三。
二、设计原理及分析
1、灰度线性变换的原理
图像增强是指对图像的某些特征,如边缘、轮廓、对比度等进行强调或锐化,以便于显示、观察或进一步分析与处理。
而灰度线性变换就是图像增强的众多方法中的一种。
它可使图像动态范围增大,图像对比度扩展,从而使图像变得清晰,以及图像上的特征更加明显。
线性变化
,令原图像f(i,j)的灰度范围为[a,b],线性变换后图像g(i,j)的范围为[a’,b’]。
g(i,j)与f(i,j)之间的关系为:
。
根据设计要求要对彩色图像进行灰度线性变换,所以获取的图片为真彩色图像,既RGB图像,则可用rgb2gray()函数转为灰度图像。
2、直方图均衡的原理
一幅图像的直方图表示该图像中各种不同灰度级像素出现的相对频率。
直方图均衡化是利用直方图的统计数据进行直方图的修改,能有效的处理原始图象的直方图分布情况,使各灰度级具有均匀的概率分布,通过调整图像灰度值的动态范围,自动地增加整个图像的对比度,以致图像具有较大的反差,大部分细节比较清晰。
直方图均衡化也是图像增强的一种手段。
利用MATLAB的直方图均衡化函数histeq()函数可以实现对图像的增强。
3、DCT变换及其反变换的原理
离散余弦变换DCT是图像数据压缩中常用的一个变换编码方法。
DCT分为一维离散余弦变换和二维离散余弦变换,一维离散余弦变换是处理一维信号的,二维离散余弦变换是处理二维信号的。
原理分析:
当f(x)或f(x,y)为偶函数时,变换的计算公式只有余弦项。
一个任意函数采样从0,1,2,…,N-1,若向负方向折叠形成2N采样的偶函数,就可以进行2N的偶函数傅立叶变换。
余弦变换是简化傅立叶变换的一种方法。
离散序列f(x),x=0,1,2,…,N-1,以-1/2为折点,形成-N至-1的序列,与原序列合并形成2N偶函数序列,此时的变换核为:
离散傅立叶变换的虚部为零,上式剩下余弦项
在Matlab中可以使用dct2()和idct2()函数对图像进行DCT变换和DCT反变换。
4、最优阈值算法的原理
若图像中目标和背景具有不同的灰度集合:
目标灰度集合和背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。
这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割法。
在物体与背景有较强的对比度的图像中此方法应用特别有效。
阈值的计算方法如下:
利用图像的先验知识,即图像中对象和背景的灰度分布规律,在误差率最小的原则下计算合理阈值。
设图像由两类对象1、2组成,它们的条件概率分别为:
P(x/1)、P(x/2),其中x是灰度级,T是阈值
二值化判断:
x>T,x2;x 最优条件 2误为1的误差概率: 1误为2的误差概率: 先验概率P (2),P (1),P (2)+P (1)=1 总误判概率: (T)=P (1)1(T)+P (2)2(T) let(T)/T=0, then1(T)/T=P(x/2), 2(T)/T=-P(x/1), 总误差最小时有 P (2)P(x/2)x=T=P (1)P(x/1)x=T 三、设计流程 1、GUI的使用及程序界面设计 打开MATLAB,在file>new>GUI中新建一个空的GUI,如下图 单击OK,如下图 然后在空的窗体上添加组件,设计程序界面如下 单击MenuEditor添加菜单项,完成后如下 单击OK完成添加,然后关闭GUI窗口并保存为text3.fig文件,同时生成text3.m文件,最后在text3.m中完成设计。 四、实验源程序 functionvarargout=text3(varargin) %TEXT3M-filefortext3.fig %TEXT3,byitself,createsanewTEXT3orraisestheexisting %singleton*. % %H=TEXT3returnsthehandletoanewTEXT3orthehandleto %theexistingsingleton*. % %TEXT3('CALLBACK',hObject,eventData,handles,...)callsthelocal %functionnamedCALLBACKinTEXT3.Mwiththegiveninputarguments. % %TEXT3('Property','Value',...)createsanewTEXT3orraisesthe %existingsingleton*.Startingfromtheleft,propertyvaluepairsare %appliedtotheGUIbeforetext3_OpeningFunctiongetscalled.An %unrecognizedpropertynameorinvalidvaluemakespropertyapplication %stop.Allinputsarepassedtotext3_OpeningFcnviavarargin. % %*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone %instancetorun(singleton)". % %Seealso: GUIDE,GUIDATA,GUIHANDLES %Copyright2002-2003TheMathWorks,Inc. %Edittheabovetexttomodifytheresponsetohelptext3 %LastModifiedbyGUIDEv2.506-Jun-201318: 10: 08 %Begininitializationcode-DONOTEDIT gui_Singleton=1; gui_State=struct('gui_Name',mfilename,... 'gui_Singleton',gui_Singleton,... 'gui_OpeningFcn',@text3_OpeningFcn,... 'gui_OutputFcn',@text3_OutputFcn,... 'gui_LayoutFcn',[],... 'gui_Callback',[]); ifnargin&&ischar(varargin{1}) gui_State.gui_Callback=str2func(varargin{1}); end ifnargout [varargout{1: nargout}]=gui_mainfcn(gui_State,varargin{: }); else gui_mainfcn(gui_State,varargin{: }); end %Endinitializationcode-DONOTEDIT %---Executesjustbeforetext3ismadevisible. functiontext3_OpeningFcn(hObject,eventdata,handles,varargin) %Thisfunctionhasnooutputargs,seeOutputFcn. %hObjecthandletofigure %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %varargincommandlineargumentstotext3(seeVARARGIN) %Choosedefaultcommandlineoutputfortext3 handles.output=hObject; %Updatehandlesstructure guidata(hObject,handles); %UIWAITmakestext3waitforuserresponse(seeUIRESUME) %uiwait(handles.figure1); %---Outputsfromthisfunctionarereturnedtothecommandline. functionvarargout=text3_OutputFcn(hObject,eventdata,handles) %varargoutcellarrayforreturningoutputargs(seeVARARGOUT); %hObjecthandletofigure %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %Getdefaultcommandlineoutputfromhandlesstructure varargout{1}=handles.output; %---Executesonselectionchangeinpopupmenu1. functionpopupmenu1_Callback(hObject,eventdata,handles) %hObjecthandletopopupmenu1(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %Hints: contents=get(hObject,'String')returnspopupmenu1contentsascellarray %contents{get(hObject,'Value')}returnsselecteditemfrompopupmenu1 %---Executesduringobjectcreation,aftersettingallproperties. functionpopupmenu1_CreateFcn(hObject,eventdata,handles) %hObjecthandletopopupmenu1(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesempty-handlesnotcreateduntilafterallCreateFcnscalled %Hint: popupmenucontrolsusuallyhaveawhitebackgroundonWindows. %SeeISPCandCOMPUTER. ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end %-------------------------------------------------------------------- functionfile_menu_save_Callback(hObject,eventdata,handles) uiputfile('File','SaveFile') %hObjecthandletofile_menu_save(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %-------------------------------------------------------------------- functionfile_menu_exit_Callback(hObject,eventdata,handles) button=questdlg('确实要退出吗? ','提示对话框') ifstrcmp(button,yes) exit(); end %hObjecthandletofile_menu_exit(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) functionprocess_Callback(hObject,eventdata,handles) %hObjecthandletoprocess(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %-------------------------------------------------------------------- functionshow_orgimage_Callback(hObject,eventdata,handles) %hObjecthandletoshow_orgimage(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %-------------------------------------------------------------------- functionimage_enhance_Callback(hObject,eventdata,handles) %hObjecthandletoimage_enhance(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %-------------------------------------------------------------------- functionimage_transform_Callback(hObject,eventdata,handles) %hObjecthandletoimage_transform(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %-------------------------------------------------------------------- functionimage_segmentation_Callback(hObject,eventdata,handles) %hObjecthandletoimage_segmentation(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %-------------------------------------------------------------------- functionfile_menu_Callback(hObject,eventdata,handles) %hObjecthandletofile_menu(seeGCBO) %eventdatareserved-tobedefinedinafutureversionofMATLAB %handlesstructurewithhandlesanduserdata(seeGUIDATA) %-------------------------------------------------------------------- functioncolour_image_Callback(hObject,eventdata,handles) figure; M=imread('彩色图.bmp'); subplot(1,1,1),imshow(M);title('原彩色图'); %-------------------------------------------------------------------- functiongray_image_Callback(hObject,eventdata,handles) figure; M=imread('灰度图.bmp'); subplot(1,1,1),imshow(M);title('原灰度图'); %-------------------------------------------------------------------- functionhist_Callback(hObject,eventdata,handles) figure; i=imread('彩色图.bmp'); subplot(3,2,1),imshow(i);title('原彩色图'); i1=rgb2gray(i); i2=histeq(i1); subplot(3,2,2),imshow(i1);title('原彩色图变成灰度图'); subplot(3,2,3),imhist(i1);title('原图直方图'); subplot(3,2,4),imshow(i2);title('均衡化后的原图'); subplot(3,2,5),imhist(i2);title('均衡化后图的直方图'); %-------------------------------------------------------------------- %functiongray_Callback(hObject,eventdata,handles) %figure; %M=imread('彩色图.bmp'); %subplot(2,1,1),imshow(M) %title('原彩色图'); %M1=rgb2gray(M); %subplot(2,1,2), %imshow(M1);title('灰度线性变换后的图像'); %-------------------------------------------------------------------- functionDCT_transform_Callback(hObject,eventdata,handles) figure; M=imread('彩色图.bmp'); M1=rgb2gray(M); M2=dct2(M1); subplot(2,2,1),imshow(M);title('原彩色图'); subplot(2,2,2),imshow(log(abs(M2)),[05]);title('DCT变换后的图像'); M3=idct2(M1); subplot(2,2,3),imshow(M3);title('DCT反变换后的图像'); %-------------------------------------------------------------------- functionsave_partDCT_Callback(hObject,eventdata,handles) figure; M=imread('彩色图.bmp'); M1=rgb2gray(M); M2=dct2(M1,16,16); subplot(2,2,1),imshow(M);title('原彩色图'); subplot(2,2,2),imshow(log(abs(M2)),[05]);title('仅保留左上角16*16的DCT变换后的图像'); M3=idc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10405321 图形图像 期末 作业 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)