ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1.27MB ,
资源ID:29594871      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29594871.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于界面GUI的图像处理软件综合设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于界面GUI的图像处理软件综合设计.docx

1、基于界面GUI的图像处理软件综合设计摘要数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的逐步完善,使得数字图像处理技术在各个领域得到了广泛的应用,并显示出广阔的应用前景。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台,它为数据分析和数据可视化、算法和应用程序开发提供了核心的数学和高级图形工具。MATLAB集成了功能强大的工具箱,MATLAB语言的语法特性与C语言极为相似,且更加简单,并且MATLAB语言可移植性好、扩展性强,再加上其中有丰富的图像处理函数,使得它在我们今后的学习和工作有越来越重要的作用。本报告主要描述了简单的基于界面GUI

2、的图像处理软件综合设计以及嵌入式设计:基于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二、设

3、计内容-18三、具体设计-18熟悉TMS320C6000软件开发过程-18了解边缘检测的算法和用途,利用Sobel 算子进行边缘检测,实现基于Sobel算子的边缘检测方法-20四、实验结果-22心得体会-22 设计一、基于界面GUI的图像处理软件综合设计(基于Matlab )一、设计目的综合运用MATLAB工具箱实现图像处理的GUI程序设计。二、设计要求1、熟悉掌握MATLAB的程序设计方法。2、掌握MATLAB GUI程序设计。3、学习和熟悉MATLAB图像处理工具箱。4、学会运用MATLAB图像处理工具箱对图像分析。三、设计内容设计一个软件,实现功能包括图像的读取、存储、显示、图像转换、加

4、噪、去噪、增强、边缘检测、直方图统计等。四、总体设计因为我们要学习的是运用MATLAB工具箱设计的方法和步骤,再加上能力有限,所以该软件实现的功能较简单,其菜单如下:设计完成时菜单界面如下:五、具体设计图像的读取与保存1、打开设计的时候,通过打开一个对话框来实现,选择uigetfile函数来实现,uigetfile函数显示一个打开文件的对话框,该对话框自动列出当前路径下的目录和文件。其使用方法如下:global im %定义一个全局变量imfilename,pathname=uigetfile(*.*;*.bmp;*.tif;*.png,select picture); %选择图片路径str=

5、pathname filename; %合成路径+文件名im=imread(str); %读取图片axes(handles.axes1); %使用第一个axesimshow(im); %显示图片2、保存同样通过打开一个对话框来实现,选择uiputfile函数来实现global BW %定义处理后的图片BW这个全局变量filename,pathname,filterindex=uiputfile(*.bmp;*.tif;*.png,save picture);存储图片路径if filterindex=0return %如果取消操作,返回elsestr=pathname filename; %合成

6、路径+文件名axes(handles.axes2); %使用第二个axesimwrite(BW,str); %写入图片信息,即保存图片end3、退出这就简单了,程序如下:clc;close all;close(gcf);图像转化为灰度图像。由于在matlab中较多的图像处理函数支持对灰度图像进行处理,故对图像进行灰度转化十分必要。可利用rgb2gray(X)函数对其他图像进行灰度图像的转化。转化实例如下:实现程序段如下:global Taxes(handles.axes2);T=getimage;x=rgb2gray(handles.img); imshow(x);handles.img=x;

7、guidata(hObject,handles); p=inputdlg(prompt,input,1,defans); p1=str2num(p1); f=imresize(handles.img,p1,bilinear); imshow(f); handles.img=f; guidata(hObject,handles);end图像直方图统计和直方图均衡。 (1)通过histeq(X)函数实现直方图均衡。因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像。 在上一步的基础上对第二幅图进行直方图均衡:直方图均衡实现程序段如下:% - Executes on button pr

8、ess 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)global Taxes(handles.axes2);T=getimage;h=histeq(handles

9、.img); imshow(h);handles.img=h;guidata(hObject,handles); 关键部分:通过 h=histeq(handles.img)进行直方图均衡 (2)直方图统计。通过利用imhist(X)函数来实现直方图统计。% - Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be

10、defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)axes(handles.axes2);x=imhist(handles.img); %直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);axis(0 255 0 15000);set(handles.axes2,xtick,0:50:255);set(handles.axes2,ytick,0:2000:15000);注意:横纵坐标的范围应选取适当,否则,统

11、计图表有可能超出范围。加入各种噪声,并通过几种滤波算法实现去噪。(1)加入噪声。通过imnoise(I,type,parameters)来加入各种噪声。加入椒盐噪声加入高斯噪声:加入乘性噪声:实现程序段如下:function uipanel4_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with h

12、andles and user data (see GUIDATA)global Tstr=get(hObject,string);axes(handles.axes2);switch str case 椒盐噪声 T=getimage; prompt=输入椒盐噪声参数1:; defans=0.02; p=inputdlg(prompt,input,1,defans); p1=str2num(p1); f=imnoise(handles.img,salt & pepper,p1); imshow(f); handles.img=f; guidata(hObject,handles); case

13、高斯噪声 T=getimage; prompt=输入高斯噪声1:,输入高斯噪声2; defans=0,0.02; p=inputdlg(prompt,input,1,defans); p1=str2num(p1); p2=str2num(p2); 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(prompt,input,1,defans)

14、; p1=str2num(p1); f=imnoise(handles.img,speckle,p1); imshow(f); handles.img=f; guidata(hObject,handles); end(2)滤除噪声(高斯噪声)。(因为只能对灰度图滤波,所以应先转换为灰度图)滤波前中值滤波后低通滤波器滤波后实现程序段如下:中值滤波:global im;global y;y2=double(y)/255;MEDFILT=medfilt2(y2,3 3);axes(handles.axes2);imshow(MEDFILT,);低通滤波:global imglobal yM N=si

15、ze(im);F=fft2(y);fftshift(F);Dcut=100;D1=250;for u=1:M for v=1:N D(u,v)=sqrt(u2+v2); BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Dcut)2); endend BUTTERG=BUTTERH.*F; BUTTERfiltered=ifft2(BUTTERG);axes(handles.axes2);imshow(BUTTERfiltered,)边缘检测Robert算法检测:Sobel算法检测:Prewitt算法检测:Log算法检测:Canny算子检测:实现程序:Robert算子

16、:global imglobal cwaxes(handles.axes2);cw=edge(im ,robert);imshow(cw);Sobel算子:global imglobal dwaxes(handles.axes2);dw=edge(im ,sobel);imshow(dw);Prewitt算子:global imglobal dwaxes(handles.axes2);dw=edge(im ,prewitt);imshow(dw);Log算子:global imglobal dwaxes(handles.axes2);dw=edge(im ,log);imshow(dw);Ca

17、nny算子:global imglobal dwaxes(handles.axes2);dw=edge(im ,canny);imshow(dw);RGB图像处理转换为索引图:转换为二值图:实现程序:索引图像:global imY2=rgb2ind(im,128);axes(handles.axes2);imshow(Y2);二值图像:global imwm=im2bw(im,0.4);axes(handles.axes2);imshow(wm);图像锐化Sobel算子滤波:拉氏算子滤波:空域高通滤波:频域高通滤波:实现程序:Sobel算子滤波:global imH=fspecial(sobe

18、l);K=filter2(H,im);axes(handles.axes2);imshow(K);拉氏算子滤波:global imam=double(im);h=0 1 0,1 -4 1,0 1 0;J=conv2(am,h,same);K=am-J;axes(handles.axes2);imshow(K);空域高通滤波:global imj=im2double(im)h=-1 -1 -1,-1 9 -1,-1 -1 -1;K=conv2(j,h,same);axes(handles.axes2);imshow(K);频域高通滤波:global imglobal yM N=size(im);

19、F=fft2(y);fftshift(F);Dcut=100;D1=250;for u=1:M for v=1:N D(u,v)=sqrt(u2+v2); BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(Dcut/D(u,v)2); endend BUTTERG=BUTTERH.*F; BUTTERfiltered=ifft2(BUTTERG);axes(handles.axes2);imshow(BUTTERfiltered,)六、结果分析软件测试基本成功,课题所要求的功能均能较好实现。但一些功能只支持灰度图像的处理。其中值得一提的是在滤波处理中的低通滤波与高通滤波的效果。由于

20、一般图像中含有较多的低频信息成分高频成分较少,通过低通滤波后,噪声以及高频成分被滤除,图像虽有少量失真,略显模糊,但尚可辨识。但若是通过高通滤波后,大量的有效低频信息被滤除,图像严重失真,不可辨识。设计二、嵌入式设计:基于ICETEK-DM642-P4 的嵌入式DSP图像处理算法实现一、设计目的 掌握Code Composer Studio2.2 的安装和配置,熟悉TMS320C6000软件开发过程,熟悉怎样运用该软件来做相关的实际图像处理。二、设计内容掌握Code Composer Studio2.2 的安装和配置,熟悉TMS320C6000软件开发过程:创建工程和管理工程、编译和调试、使用

21、观察窗口、了解图形功能(实验书P40-45);了解边缘检测的算法和用途,利用Sobel 算子进行边缘检测,实现基于Sobel算子的边缘检测方法(实验书P106-108) ; 在的基础上,修改核心代码,调试实现基于Prewitt算子的边缘检测方法。三、具体设计熟悉TMS320C6000软件开发过程1. 实验准备. 连接实验设备,连接220V 供电电源连线,请使用有质量保证的220V 电源插座。. 打开实验箱上的开关,给实验箱供电。上电正常时,ICETEK-DM642-P4 评估板的上电指示灯常亮,复位指示灯熄灭。注意:如果在ICETEK-DM642-P4 评估板上电后,指示灯的亮灭状态不对,请立

22、即关闭实验箱电源开关,检查设备。打开液晶显示屏电源开关,此时液晶显示屏上应显示条状彩条。如果没有彩条显示,请按下板上的S3 复位按钮,再次观察液晶显示屏是否有彩条输出。提示:如果使用自配的图像输入设备和图像输出设备,请务必保证各设备与DM642-P4评估板的供电电源共地。如果不共地,过大的电压差,将击穿DM642 评估板。2. 设置Code Composer Studio2.2 在硬件仿真(Emulator)方式下运行请参照第二部分,第二章操作。3. 启动Code Composer Studio2.2双击桌面上“CCS 2(C6000)”,启动Code Composer Studio2.2;如

23、果无法进入CCS软件,请参照第二部分,第三章操作,排除问题。4. 创建工程. 创建新的工程文件:选择菜单“Project”的“New”项;在“Project Creation”对话框中,在“Project”项输入USECCS ; 单击“ Location ” 项末尾的浏览按钮, 改变目录到C:ICETEK-DM642-P4Lab501-USECCS,单击“OK”;单击“完成”;这时建立的是一个空的工程文件; 展开主窗口左侧工程管理窗口中“ Projects ” 下新建立的“USECCS .pjt”,其中各项均为空。提 示:如果要创建库文件,只需要在建立新工程时,将“Project”中的选项更改

24、为“Library (.lib)”即可。. 在工程文件中添加程序文件:选择菜单“Project”的“Add Files to Project”项;在“Add Files to Project”对话框中选择文件目录为Lab501-USECCS,改变文件类型为“C Source Files(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加volume.cmd、load.asm 和vectors.asm 文件到USECCS 工程中(如没有找到相应的文件,请选择改变文件类型来找);添加C:tiC6000cgtoolslibrts6400.lib。. 编译连接工程:选择

25、菜单“Project”的“Rebuild All”项;注意编译过程中CCS 主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。5. 编辑修改工程中的文件. 查看工程文件展开CCS 主窗口左侧工程管理窗中的工程各分支,可以看到“USECCS.pjt”工程中包含“volume.h”、“rts6400.lib”、“volume.c”和“volume.cmd”等文件,其中“volume.h”为程序在编译时根据程序中的“include”语句自动加入的。. 查看源文件双击工程管理窗中的“volume.c”文件,可以查看程序内容。双击工程管理窗中的“volume.h”文件,打开此

26、文件显示,可以看到其中有主程序中要用到的一些宏定义如“BUF_SIZE”等。“volume.cmd”文件定义程序所放置的位置,此例中描述了DM642 的存储器资源,指定了程序和数据在内存中的位置。. 编辑修改源文件打开“volume.c”,找到“main()”主函数,将语句“input = &inp_buffer0;”最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示,双击红色错误提示,CCS 自动转到程序中出错的地方;将语句修改正确(这里是将语句末尾的分号加上);重新编译;注意,重新编译时修改的文件被CC 系统自动保存。. 修改工程文件的设置选择“Project”菜单中的“Bui

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1