vc与matlab图像处理课设报告

上传人:第*** 文档编号:55638320 上传时间:2018-10-03 格式:PDF 页数:28 大小:830.14KB
返回 下载 相关 举报
vc与matlab图像处理课设报告_第1页
第1页 / 共28页
vc与matlab图像处理课设报告_第2页
第2页 / 共28页
vc与matlab图像处理课设报告_第3页
第3页 / 共28页
vc与matlab图像处理课设报告_第4页
第4页 / 共28页
vc与matlab图像处理课设报告_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《vc与matlab图像处理课设报告》由会员分享,可在线阅读,更多相关《vc与matlab图像处理课设报告(28页珍藏版)》请在金锄头文库上搜索。

1、河北建筑工程学院课程设计报告课程名称:课程名称:电子综合课程设计电子综合课程设计题目名称:题目名称:基于基于 VCVC 与与 MATLABMATLAB 混合编程混合编程的图像的图像处理处理系统实现系统实现学学院:院:电气工程学院电气工程学院专专业:业:电子信息工程电子信息工程班班级:级:学学号:号:学生姓名:学生姓名:指导教师:指导教师:职职称:称:讲师讲师成成绩:绩:20162016 年年 7 7 月月 1515 日日目录引言1 第一章 总体设计方案 31.1 设计思路31.2 总体设计框图 5 第二章 设计原理 62.1 引擎介绍62.2 引擎函数功能 72.3 编译与连接 9 第三章 系

2、统实现 103.1 界 面 103.2 连 接 103.3 程 序 113.4 总体效果14 第四章 总结与体会 17 参考文献18 附录 源程序代码 191基于 Vc 和 Matlab 混合编程的图像信号处理系统实现引言图像信息是人类获得外界信息的主要来源,在现代科学研究、工业生产、军事技术等各个领域中,人们越来越多的利用图像信息来认识和判断失误,解决实际问题,因此图像信息获得和处理显得尤为重要。Matlab 是近几年来国内外最为广泛的优秀科技软件之一。 其语法结构简单, 具有极强的数值计算、数据分析、图形绘制及图像处理等功能,具有高质量的图形可视化效果和强大的界面设计能力。因而在数字图像处

3、理中有着其他语言所无法比拟的优势。图像处理技术基本分为两大类:模拟图像处理和数字图像处理,数字图像处理是指将图像信号转换成信号并利用计算机进行处理的过程。 数字图像处理技术主要包括以下内容:几何处理、算术处理、图像增强、图像复原、图像重建、图像编码、图像识别、图像理解。Matlab 是一套高性能的数值计算和可视化软件, 拥有一个方便、 界面友好的用户环境,能为各个层次的研究人员可直观、方便地进行分析、计算及设计工作,从而大大地节省时间。由于 Matlab 强大的功能,已成为应用于线性代数、自动控制理论、数理统计、 数字信号处理等方面的基本工具。由于它的针对数值计算的交互式软件特性, 以其强大的

4、数据处理能力和丰富的工具箱使得编程极为简单,可大幅度缩短应用程序开发周期、提高编程效率。然而 Matlab 自身所存在的某些缺点限制了它的应用范围,以致不能满足用户的高级需求。MATLAB 图像工具箱提供了丰富的图像处理函数主要有:图空间变换;邻域和块操作;二值图像操作;线性滤波和滤波器设计;变换域处理;图像分析和增强;图像修复;感兴趣区域处理;图像压缩;形态学运算等。VC是Windows平台下强有力的高级编程语言, 能够方便快速地开发出界面友好,执行速度快,易于维护升级的软件系统。但 VC 只提供了些基本的数学函数库,当遇到复杂的数值运算时, 重新编写程序代码将大幅度延长软件开发周期,增加软

5、件开发成本。然而 Matlab 拥有独立的数学函数库,含有大量的数学函数,同时提供了对 VC函数接口,用户可以方便地在 VC 的集成开发环境中调用,若将两者结合起来,必将提高软件开发效率。本文主要选取基于 VC 和 MATLAB 的数字图像处理中图像识别功能进行课程设计,通过对系统的调试及学习,掌握 MATLAB 数字图像处理技术的基础知识及基本程序设计方法。2关键字:VC、MATLAB、混合编程、数字图像处理、引擎(engine)3第一章 总体设计方案1.1 设计思路(1)界面显示方案方案一:利用 MATLAB 自带的 GUI 图形设计功能来进行用户界面设计。MATLAB 7.0 版本的 G

6、UI 设计工具较为全面,同时设计界面美感加强。部分程序命令:guide%打开设计工作台界面启动界面guide file%在工作台中打开文件名为 file 的用户界面MATLAB 的 GUI 是 MATLAB 人机交互的界面。由于 GUI 本身提供了 windows基本空间支持, 并且具有良好的时间驱动机制, 同时提供了 MATLAB 数学库的接口,所以 GUI 对于控制系统仿真的平台设计显得十分合适。图 1.1 GUI 打开界面图方案二:Visual C+是一个全面的应用程序开发环境,掌握 Microsoft 基本类库(MFC)的层次结构,该层次结构包容了 WindowsAPI 的用户界面部分

7、。MFC 以 C+类的形式封装了大部分 Win32API,包含一个应用程序框架和很多的创建应用程序的组件,使用它可以降低应用程序开发的难度、 可大大减少应用程序开发人员的工作量。 MFC以层次结构进行组织,提供了大量的基类供程序员根据不同的应用环境进行扩充 ,允许在编程过程中自定义和扩展应用程序的类。同时 MFC 开发的程序具备很好的系统兼容性。综合考虑: 由于此次课程设计是基于 VCVS 和 MATLAB 的数字图像处理系统设计,老师强调需要结合 VC 来进行设计,并且考虑到系统的兼容性等因素。我采用Visual C+6.0 软件和 MATLAB 7.0 来完成此次课程设计任务。这俩软件都是

8、原来版本的升级版,有了很好的编辑效果,最终得到了很好的输出结果。经过对于系统的整体考虑,最后选择方案二。4(2)混合编程方案方案一:调用 MATLAB 引擎。所谓 MATLAB 引擎(engine),是指一组 MATLAB 提供的接口函数,支持 C/C+、Fortran 等语言,通过这些接口函数,用户可以在其它编程环境中实现对 MATLAB 的控制。与其他各种接口相比,引擎所提供的 MATLAB功能支持是最全面的。通过引擎方式,应用程序会打开一个新的 MATLAB 进程,可以控制它完成任何计算和绘图操作。对所有数据结构提供 100%的支持。同时,引擎方式打开的 MATLAB 进程会在任务栏显示

9、自己的图标,打开该窗口,可以观察主程序通过 engine 方式控制 MATLAB 运行的流程, 并可在其中输入任何 MATLAB 命令。该方案在 Visual C+ 6.0 编程中,程序较为简单,添加头文件“#include “engine.h”后配合基本的命令程序语句即可使用。方案二:MATLAB 自带的 C+complier -mcc,能将 m 文件转换为 C/C+代码。因此,它为 C/C+程序调用 m 文件提供了另一种方法。 同时可以脱离 MATLAB 运行环境独立生成可执行的.dll 文件(动态连接库)和.lib 文件(静态连接库),实现 MATLAB 与VC+的连接。该方案利用 MA

10、TLAB 和 Visual C+ 6.0 编程地方很多,且需要在 VC中自己编写连接函数,难度较大。方案三:COM 组件:组件对象模型(简称 MCR)是以组件为发布单元的对象模型。它提供一种可以共享二进制代码的工业标准,允许任何符合标准的程序访问,所以 COM作为不同语言之间的协作开发是非常方便的。 MATLAB的COM编译器是在MATLAB6.5 中才开始提供的一个新工具,从 MATLAB 7.0 起,这个产品改名为 MATLABBuilder for COM。基于 COM 的混合编程方法也是 Mathworks 公司推荐使用的方法。综合考虑:以上三种方法中,采用 MATLAB 引擎方式,应

11、用程序整体性能好,MATLAB 引擎支持功能全面, 但需要 MATLAB 后台运行, 不能脱离 MATLAB 环境。而 MCC 方法和 COM 组件方法均可已脱离 MAYLAB 环境,应用程序运行效率高。开始我们选择 mcc 编译器的方法进行混合编程,但是经过后期的编程、运行和调试后发现,难度较大,无法及时完成本次课程设计任务。所以最终我们选择了调用MATLAB 的引擎函数 engine 函数的方法,即方案一。5(3)设计流图图 1.2 总体设计流图1.2 总体设计框图图 1.3 方案总体框图根据本方案总体框图进行界面编辑和后台程序编辑, 从而进一步完善本次课程设 计任务。查阅资料设计方案及选

12、择理论准备界面设计程序设计编译连接系统调试设计成功开始初始界面打开文件原始图像高斯白噪声椒盐噪声中值滤波均值滤波图像锐化灰度变换图像复原自适应变换变换后的图像6第二章 设计原理2.1 引擎介绍Matlab引擎,是Matlab提供的一系列程序的结合,它允许用户在自己的应用程序中对Matlab进行调用,将Matlab作为一个操作引擎使用,使其在后台运行。 同时Matlab提供的接口函数它采用客户机/服务器计算模式,并且支持VC语言。一般情况下,客户机是运行前端软件的PC机,并且知道如何与服务器通信,服务器与此相对应,是接收请求信息,并采取相应行为的机器。具体在VC中使用Matlab引擎来编制程序时

13、,VC是作为客户端出现的,即负责用户接口和提出数据请求,而Matlab则属于服务器端, 即向客户端提供数据服务。 VC客户端通过调用Matlab引擎与Matlab服务器建立连接,从而实现动态通信。其引擎调用全过程如图2.1所示。图 2.1 引擎调用全过程在 Matlab 环境中将 Matlab 函数编译成可以脱离 Matlab 环境使用的动态连接库,在 VC 环境中编写应用程序界面并加载调用动态连接库,实现二者之间的无缝连接,此种方法关键是对 Matlab 与 VC 接口进行编程。由于其完全脱离 Matlab 环境,因此得到广泛应用。采用目前较为流行的 Windows 应用程序开发环境 VC

14、完成图形界面设计、数据管理、低层 I/O 操作,利用 Matlab 数学库完成软件核心算法设计,很大程度上降低了编程难度和工作量,缩短开发周期,提高软件可靠性。尤其利用编译器调用 Matlab动态连接库实现脱离 Matlab 环境下二者的紧密结合, 更极大拓展了 Matlab 的应用范围。调用Engine接口函数的VC应用程序被称为引擎程序。引擎函数用来控制Matlab计算引擎的工作, 主要函数有六个,如下表2.1所示。7表2.1MATLAB引擎常用的调用2.2 引擎函数功能Matlab引擎函数库中的函数具体功能如下:(1) engOpen ( )启动Matlab引擎:语法:# include

15、 “engine. h“Engine *engOpen (constchar * startcmd) ;说明:通过函数engOpen用户可以在自己的应用程序中,在后台启动一个Matlab进程,用于完成一定的计算任务,其返回值是一个Engine类型的指针变量,若函数执行成功将返回开启的Matlab引擎的指针,否则为NULL,其输入参数为一字符指针startcmd,在windows操作系统必须为NULL。(2) engPutArray ( )将mxArray结构体类型变量输送到Matlab的工作空间:语法:# include “engine. h“int engPutArray (Engine * ep , const mxArray * mp ) ;说明: 引擎函数engPutArray包含两个输入参数,分别为引擎指针ep和MxArray结构体对象指针。执行该函数,允许用户将一个MxArray结构体类型的变量输送到引擎ep中,如果在当

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号