基于matlab GUI的数字图像处理系统 您所在的位置:网站首页 数字图像处理作品 基于matlab GUI的数字图像处理系统

基于matlab GUI的数字图像处理系统

2023-12-23 02:34| 来源: 网络整理| 查看: 265

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 2 1.2.1国内研究现状 2 1.2.2国外研究现状 3 1.3研究主要内容 3 第2章 数字图像处理系统设计 5 2.1设计概括 5 2.2文件 6 2.2.1打开 6 2.2.2保存 6 2.2.3退出 6 2.3图像变形 7 2.3.1图像缩放 7 2.3.2图像旋转 7 2.3.3图像翻转 8 2.3.3.2左右翻转 9 2.4噪声处理 10 2.4.1图像去噪 10 2.4.2图像加噪 12 2.5图像增强 15 2.5.1对比度增强 15 2.5.2亮度增强 15 2.5.2直方图均衡 16 2.5.3图像锐化 17 2.6图像变换 17 2.6.1图像二值化 17 2.6.2直方图分布 18 2.6.3边缘检测 18 2.6.4傅里叶变换 19 2.6.5小波变换(边沿增强) 19 2.7彩色图像处理 20 2.7.1颜色模型转换(RGB-HSV) 20 2.7.2RGB直接增强 21 2.7.3伪彩色增强 21 2.7.4假彩色增强 22 第3章 程序调试及结果分析 23 3.1实现功能 23 3.1.1软件基本操作 24 3.1.2实验结果 25 3.2边缘检测 25 3.2.1.实验原理 25 3.2.3实验结果 26 3.3提高要求 26 3.3.1实验原理 26 3.3.2实验步骤 27 3.4实验要求拓展 28 总 结 32 参考文献 33 附 录 34 1.3研究主要内容 先整体的设计一个界面,确定它所要完成的功能,查找完成各个功能所调用的函数及其用法,再考虑各功能模块的布局,然后分别调用选择的函数去实现各个模块的功能。设计一个GUI界面,调用了MATLAB里的函数来处理图像,突出的地方是对于对话框的应用,使用户在处理图像时可以灵活的设定所需要的参数,不受设计者的限制,增加功能如截图等,是使用更加的人性化。计一个数字图像处理的可视化平台,基本要求:利用MATLAB图像处理工具箱,根据需求进行程序的功能分析和界面设计,实现数字图像的灰度处理、亮度处理、截图、缩放、旋转、噪声、滤波、直方图统计、频谱分析、颜色模型转换等。 第3章 程序调试及结果分析 程序经过调试各个功能模块可以正确独立运行。同时在设计过程中,也发现程序的一些缺陷和不足: 1.一个函数只能对灰度图像处理,不能对RGB图像处理,那么如何才能对RGB图像处理: 这主要是对MATLAB函数的不够清楚,用到的很多函数是针对二维数据的,而RGB图像的数据是一个三维矩阵,所以处理要与灰度图像不同,在开始的时候,我认为应该找一个能够应用于三维矩阵的函数,结果却没找到,后来想到可以把三维数据进行降维处理,同样使用二维的函数,只要是同样处理三次。比如,彩色图像的滤波处理,直方图均衡等。 2.同一个操作对灰度图像可以使用,当用户选择的是彩色图像时,该操作就会出错: 这是由于设计程序时,本身程序是有针对性的,有些程序只能对灰度图像有效,有些对彩色图像有效,但是用户并不清楚这些,所以在设计的过程中就要考虑全面,要分开设计。在本次毕业设计中,我均对每个程序的开始时,用if isrgb(x)进行判断。 3.1实现功能 ①掌握Code Composer Studio2.2 的安装和配置,熟悉TMS320C6000软件开发过程:创建工程和管理工程、编译和调试、使用观察窗口、了解图形功能(实验书P40-45); ②了解边缘检测的算法和用途,利用Sobel 算子进行边缘检测,实现基于Sobel算子的边缘检测方法(实验书P106-108) ; ③ 在②的基础上,修改核心代码,调试实现基于Prewitt算子的边缘检测方法; ④在边缘检测前,加中值滤波,去除噪声,进一步提高Prewitt算子边缘检测的效果(选做) 。 具体实现: 3.1.1软件基本操作 掌握Code Composer Studio2.2 的安装和配置,熟悉TMS320C6000软件开发过程:创建工程和管理工程、编译和调试、使用观察窗口、了解图形功能; 1.1.实验步骤 : 1.1.1 实验准备:连接设备并上电 1.1.2. 设置 Code Composer Studio2.2 在硬件仿真(Emulator)方式下运行 1.1.3. 启动 Code Composer Studio2.2 1.1.4. 创建工程 1.1.5. 编辑修改工程中的文件 1.1.6. 基本调试功能 1.1.7. 使用观察窗口 1.1.8. 文件输入/输出 1.1.9. 图形功能简介 ⑴. 执行 ViewGraphTime/Frequency打开 Graph Property Dialog窗口; ⑵. 修改属性为如下值并确定: Graph Title: Input Satrt Address: inp_buffer Acquisition Buffer Size: 100 Display Data Size 100 DSP Type: 32-bit signed integer 在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。 ⑶. 按 F12 运行程序.观察 input 窗口的内容。

% -------------------------------------------------------------------- function tuxiangxuanzhuan_Callback(hObject,eventdata,handles) % hObject handle to tuxiangxuanzhuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2); prompt={'输入旋转角度:'}; defans={'30'}; p=inputdlg(prompt,'输入参数',1,defans); p1=str2num(p{1}); y=imrotate(handles.img,p1); imshow(y); % -------------------------------------------------------------------- function tuxiangfanzhuan_Callback(hObject,eventdata,handles) % hObject handle to tuxiangfanzhuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function file_open_Callback(hObject,eventdata,handles) % hObject handle to file_open (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename,pathname] = uigetfile( ... {'*.bmp;*.jpg;*.png;*.jpeg','Image Files (*.bmp,*.jpg,*.png,*.jpeg)';... '*.*','All Files (*.*)'},... 'Pick an image'); if isequal(filename,0)||isequal(pathname,0) errordlg('没有选中文件','出错'); return; else file=[pathname,filename]; global S S=file; x=imread(file); axes(handles.axes1); imshow(x); handles.img=x; handles.noise_img=x; guidata(hObject,handles);% 非常重要,一定不能少!!!存储figure数据 end % -------------------------------------------------------------------- function file_save_Callback(hObject,eventdata,handles) % hObject handle to file_save (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename ,filepath]= uiputfile({'*.bmp','BMP files';'*.jpg;','JPG files'},'Pick an Image'); if ~isequal([filename,filepath],[0,0]) filefullname=[filepath ,filename]; img=getimage(handles.axes2);% 取得axes2的图像数据 imwrite(img,filefullname); else msgbox('你按了取消键','保存失败'); return end % -------------------------------------------------------------------- function file_exit_Callback(hObject,eventdata,handles) % hObject handle to file_exit (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc; close all; close(gcf);% gcf获得当前图像的句柄 % -------------------------------------------------------------------- function shangxiafanzhuan_Callback(hObject,eventdata,handles) % hObject handle to shangxiafanzhuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2); x=handles.img; if isrgb(handles.img) for k=1:3 y(:,:,k)=flipud(x(:,:,k));%上下翻转函数 end imshow(y); else x=handles.img; y=flipud(x); imshow(y); end % -------------------------------------------------------------------- function zuoyoufanzhuan_Callback(hObject,eventdata,handles) % hObject handle to zuoyoufanzhuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2); x=handles.img; if isrgb(handles.img) for k=1:3 y(:,:,k)=fliplr(x(:,:,k));%左右翻转函数 end imshow(y); else x=(handles.img); y=fliplr(x); imshow(y); end

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有