摘要数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的逐步完善,使得数字图像处理技术在各个领域得到了广泛的应用,并显示出广阔的应用前景。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台,它为数据分析和数据可视化、算法和应用程序开发提供了核心的数学和高级图形工具。MATLAB集成了功能强大的工具箱,MATLAB语言的语法特性与C语言极为相似,且更加简单,并且MATLAB语言可移植性好、扩展性强,再加上其中有丰富的图像处理函数,使得它在我们今后的学习和工作有越来越重要的作用。本报告主要描述了简单的基于界面GUI的图像处理软件综合设计以及嵌入式设计:基于ICETEK-DM642-P4的嵌入式DSP图像处理算法实现。这些都比较简单,主要为今后的学习打下基础。关键字:MATLAB、界面GUI处理、数字图像处理目录摘要-------------------------------------------------2一、设计目的-------------------------------------------------------------------4二、设计要求-------------------------------------------------------------------4三、设计内容-------------------------------------------------------------------4四、总体设计-------------------------------------------------------------------4五、具体设计-------------------------------------------------------------------5图像的读取与包存------------------------------------------------------------5图像转化为灰度图像----------------------------------------------------------6图像直方图统计和直方图均衡-------------------------------------------6加入各种噪声,并通过几种滤波算法实现去噪------------------------------7边缘检测---------------------------------------------------12RGB图像处理------------------------------------------------14图像锐化---------------------------------------------------15六、结果分析-------------------------------------------------17设计二、嵌入式设计:基于ICETEK-DM642-P4的嵌入式DSP图像理算法实现---------------------------------------------18一、设计目的------------------------------------------------------------------18二、设计内容------------------------------------------------------------------18三、具体设计------------------------------------------------------------------18熟悉TMS320C6000软件开发过程------------------------------------------------18了解边缘检测的算法和用途,利用Sobel算子进行边缘检测,实现基于Sobel算子的边缘检测方法-----------------------------------------------------------------------------20四、实验结果------------------------------------------------------------------22心得体会---------------------------------------------22设计一、基于界面GUI的图像处理软件综合设计(基于Matlab)一、设计目的综合运用MATLAB工具箱实现图像处理的GUI程序设计。二、设计要求1、熟悉掌握MATLAB的程序设计方法。2、掌握MATLABGUI程序设计。3、学习和熟悉MATLAB图像处理工具箱。4、学会运用MATLAB图像处理工具箱对图像分析。三、设计内容设计一个软件,实现功能包括图像的读取、存储、显示、图像转换、加噪、去噪、增强、边缘检测、直方图统计等。四、总体设计因为我们要学习的是运用MATLAB工具箱设计的方法和步骤,再加上能力有限,所以该软件实现的功能较简单,其菜单如下:设计完成时菜单界面如下:五、具体设计图像的读取与保存1、打开设计的时候,通过打开一个对话框来实现,选择uigetfile函数来实现,uigetfile函数显示一个打开文件的对话框,该对话框自动列出当前路径下的目录和文件。其使用方法如下:globalim%定义一个全局变量im[filename,pathname]=uigetfile({'*.*';'*.bmp';'*.tif';'*.png'},'selectpicture');%选择图片路径str=[pathnamefilename];%合成路径+文件名im=imread(str);%读取图片axes(handles.axes1);%使用第一个axesimshow(im);%显示图片2、保存同样通过打开一个对话框来实现,选择uiputfile函数来实现globalBW%定义处理后的图片BW这个全局变量[filename,pathname,filterindex]=uiputfile({'*.bmp';'*.tif';'*.png'},'savepicture');存储图片路径iffilterindex==0return%如果取消操作,返回elsestr=[pathnamefilename];%合成路径+文件名axes(handles.axes2);%使用第二个axesimwrite(BW,str);%写入图片信息,即保存图片end3、退出这就简单了,程序如下:clc;closeall;close(gcf);图像转化为灰度图像。由于在matlab中较多的图像处理函数支持对灰度图像进行处理,故对图像进行灰度转化十分必要。可利用rgb2gray(X)函数对其他图像进行灰度图像的转化。转化实例如下:实现程序段如下:globalTaxes(handles.axes2);T=getimage;x=rgb2gray(handles.img);imshow(x);handles.img=x;guidata(hObject,handles);p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imresize(handles.img,p1,'bilinear');imshow(f);handles.img=f;guidata(hObject,handles);end图像直方图统计和直方图均衡。(1)通过histeq(X)函数实现直方图均衡。因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像。在上一步的基础上对第二幅图进行直方图均衡:直方图均衡实现程序段如下:%---Executesonbuttonpressinpushbutton7.functionpushbutton7_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton7(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTaxes(handles.axes2);T=getimage;h=histeq(handles.img);imshow(h);handles.img=h;guidata(hObject,handles);关键部分:通过h=histeq(handles.img)进行直方图均衡(2)直方图统计。通过利用imhist(X)函数来实现直方图统计。%---Executesonbuttonpressinpushbutton8.functionpushbutton8_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton8(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)axes(handles.axes2);x=imhist(handles.img);%直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);axis([0255015000]);set(handles.axes2,'xtick',0:50:255);set(handles.axes2,'ytick',0:2000:15000);注意:横纵坐标的范围应选取适当,否则,统计图表有可能超出范围。加入各种噪声,并通过几种滤波算法实现去噪。(1)加入噪声。通过imnoise(I,type,parameters)来加入各种噪声。加入椒盐噪声加入高斯噪声:加入乘性噪声:实现程序段如下:functionuipanel4_SelectionChangeFcn(hObject,eventdata,handles)%hObjecthandletouipanel4(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalTstr=get(hObject,'string');axes(handles.axes2);switchstrcase'椒盐噪声'T=getimage;prompt={'输入椒盐噪声参数1:'};defans={'0.02'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});f=imnoise(handles.img,'salt&pepper',p1);imshow(f);handles.img=f;guidata(hObject,handles);case'¸高斯噪声'T=getimage;prompt={'输入高斯噪声1:','输入高斯噪声2'};defans={'0','0.02'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});p2=str2num(p{2});f=imnoise(handles.img,'gaussian',p1,p2);imshow(f);handles.img=f;guidata(hObject,handles);case'乘性噪声'T=getimage;prompt={'输入乘性噪声1:'};defans={'0.02'};p=inputdlg