您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于matlab的简单图像处理
基于matlab的简单图像处理***中文摘要:数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。本次的课程设计,做了一个简单的图像处理,其中功能包括:图像导入、图像保存、图像加噪、图像复原等。MATLAB中集成了功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。关键词:matlab简单图像处理一、设计目的:基于GUI界面,实现一个简单的图像处理系统。二、实现功能:1、图像的读取、保存与退出2、直接灰度变换(1)灰度线性变换1)负相变换2)分段线性变换3)全域变换4)阙值化5)削波变换6)灰度窗口变换7)阶梯量化变换(2)灰度非线性变换1)指数变换2)对数变换3、噪声(1)高斯噪声(2)椒盐噪声(3)均匀分布噪声(4)随机噪声5)泊松噪声4、编辑(1)灰度(2)亮度(3)截图(4)放大1)最近邻插值法2)双线性插值法(5)1)最近邻插值法2)双线性插值法5、位置变换(1)平移(2)裁剪(3)旋转1)上下翻转2)左右翻转3)左转904)右转905)任意角度(4)错切变换(5)镜像变换6、直方图统计(1)直方图均衡化7、灰度图像处理(1)二值图像(2)图像腐蚀(3)创建索引图像8、频谱分析(1)频谱图(2)高斯高通滤波器(3)巴特沃斯低通滤波器9、提取边界10、骨架化11、噪声消除(1)算术均值滤波消除噪声(2)几何均值滤波消除噪声(3)谐波均值滤波消除噪声(4)中值滤波消除噪声(5)中点滤波消除噪声(6)修正的阿尔法均值滤波消除噪声三、总体设计如图1图1四、具体设计4.1MenuEditor如图2图24.2图像的读取与保存(1)利用“文件”菜单中的“打开”、“保存”分别实现图像的读取与保存。1)图像的读取如图3图32)图像的保存如图4图44.3直接灰度变换(1)灰度线性变换1)负相变换如图5图5(2)灰度非线性变换1)指数变换如图6图64.3噪声(1)高斯噪声如图7图74.4编辑(1)灰度(2)亮度如图8图8(3)放大1)最近邻插值法如图9图9(4)缩小2)双线性插值法如图10图104.5位置变换(1)平移如图11图11(2)裁剪如图12图12(3)旋转5)任意角度旋转如图13图13(4)错切变换如图14图14(5)镜像变换如图15图154.6直方图统计(1)直方图均衡化如图16图164.7灰度图像处理(1)二值化如图17图17(2)图像腐蚀如图18图18(3)创建索引图像如图19图194.8频谱分析(1)频谱图如图20图20(2)高斯高通滤波器如图21如图21(3)巴特沃斯低通滤波器如图22图214.9提取边界如图22图224.10骨架化如图23图234.11图像复原(1)算术均值消除噪声如图24如图24图24(2)几何均值滤波消除噪声如图25图25(3)谐波均值滤波消除噪声如图26图26(4)中值滤波消除噪声如图27图27(5)中点滤波消除噪声如图28图28(6)修正的阿尔法均值滤波消除噪声如图29图29总结:在这个系统中,只是简单的实现一些数字图像处理的方法,一些功能还没实现比如:图像的分割、霍夫变换等,还有界面也存在一些问题,是本来在设计的时候没有考虑清楚的,在经过老师的指点之后,也发现了一些问题,经过自己后来的修改也改正了一些错误。在这个系统中,由于本人前期需求分析做得不是特别完整,导致有些功能只能实现灰度图像,有些功能只能实现彩色图像,这可能会给不熟悉的用户在使用本系统的时候会出现错误,但是今后会通过自己的学习,增加自己的知识,完善该系统。参考文献:[1].高成.Matlab图像处理与应用[M].北京:国防工业出版社,2007.4(第2版).[2].蒙以正.Matlab5.X应用与技术[M].北京:科学出版社,1999.11(第2版).[3].张学敏.Matlab基础及应用[M].北京:中国电力出版社,2011.12(第2版).[4].张德丰.Matlab数字图像处理[M].北京:人民邮电出版社,2009.10.[5].刘保柱.Matlab7.0从入门到精通[M].北京:人民邮电出版社,2010.5(修订版).附录:functionvarargout=untitled3(varargin)gui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@untitled3_OpeningFcn,...'gui_OutputFcn',@untitled3_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{:});endfunctionuntitled3_OpeningFcn(hObject,eventdata,handles,varargin)handles.output=hObject;guidata(hObject,handles);functionvarargout=untitled3_OutputFcn(hObject,eventdata,handles)varargout{1}=handles.output;functionm_file_Callback(hObject,eventdata,handles)functionm_file_open_Callback(hObject,eventdata,handles)[name,path]=uigetfile({'*.bmp'},'载入图像');ifisequal(name,0)|isequal(path,0)errordlg('没有选中文件','出错');return;elsex=imread([path,name]);axes(handles.axes1);imshow(x);handles.img=x;handles.noise_img=x;guidata(hObject,handles)end%-------------------------------------------------------------functionm_file_save_Callback(hObject,eventdata,handles)[filename,pathname]=uiputfile('*.bmp','图片保存为');ifisequal([filename,pathname],[0,0])errordlg('没有保存','出错');return;elsefile=strcat(pathname,filename);(handles.axes2);i=getimage(gca);imwrite(i,file);end%-------------------------------------------------------------functionm_file_exit_Callback(hObject,eventdata,handles)clc;closeall;close(gcf);functionUntitled_1_Callback(hObject,eventdata,handles)functionUntitled_2_Callback(hObject,eventdata,handles)functionUntitled_3_Callback(hObject,eventdata,handles)functionUntitled_4_Callback(hObject,eventdata,handles)functionUntitled_10_Callback(hObject,eventdata,handles)functionUntitled_26_Callback(hObject,eventdata,handles)functionpingyi_Callback(hObject,eventdata,handles)axes(handles.axes2);a=handles.img;H=size(a);a_x=50;a_y=50;a_move(a_y+1:H(1),a_x+1:H(2),1:H(3))=a(1:H(1)-a_x,1:H(2)-a_x,1:H(3));imshow(a_move);functioncaijian_Callback(hObject,eventdata,handles)axes(handles.axes2);I=imcrop(handles.img,[80605050]);imshow(I);functionUntitled_32_Callback(hObject,eventdata,handles)functionUntitled_33_Callback(hObject,eventdata,handles)functioncuoqie_Callback(hObject,eventdata,handles)axes(handles.axes2);A=handles.img;A=double(A);h=size(A);I=zeros(h(1)+round(h(2)*tan(pi/6)),h(2),h(3));form=1:h(1)forn=1:h(2)I(m+round(n*tan(pi/6)),n,1:h(3))=A(m,n,1:h(3));endendI1=uint8(I);imshow(I1);functionjingxiang_Callback(hObject,eventdata,handles)axes(handles.axes2);A=handles.img;h=size(A);A_fliplr(1:h(1),1:h(2),1:h(3))=A(h(1):-1:1,h(2):-1:1,1:h(3));imshow(A_fliplr);functionhuidu_Callback(hObject,eventdata,handles)axes(handles.axes2);ifisrgb(handles.img)y=rgb2gray(handles.img);%RGBimshow(y);elsemsgbox('这已经是灰度图像','转换失败');endfunctionliangdu_Callback(hObject,eventdata,handles)prompt={'输入参数1','输入参数2','输入gamma'};defans={'[00.7]','[01]','1'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});p3=str2num(p{3});gamma=p3;x=(handles.img);y=imadjust(x,p1,p2,gamma);axes(handles.axes2);imshow(y);functionjietu_Callback(hObject,eventdata,handles)set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2)
本文标题:基于matlab的简单图像处理
链接地址:https://www.777doc.com/doc-5859885 .html