vc及matlab图像处理课设报告

上传人:第*** 文档编号:61574729 上传时间:2018-12-04 格式:DOC 页数:28 大小:329.63KB
返回 下载 相关 举报
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、河北建筑工程学院课程设计报告课程名称: 电子综合课程设计 题目名称: 基于VC与MATLAB混合编程 的图像处理系统实现 学 院: 电气工程学院 专 业: 电子信息工程 班 级: 学 号: 学生姓名: 指导教师: 职 称: 讲师 成 绩: 2016年 7月15日目 录引言1第一章 总体设计方案3 1.1 设计思路3 1.2 总体设计框图5第二章 设计原理6 2.1 引擎介绍6 2.2 引擎函数功能7 2.3 编译与连接9第三章 系统实现10 3.1 界 面10 3.2 连 接10 3.3 程 序11 3.4 总体效果14第四章 总结与体会17参考文献18附录 源程序代码19基于Vc和Matla

2、b混合编程的图像信号处理系统实现引言图像信息是人类获得外界信息的主要来源,在现代科学研究、工业生产、军事技术等各个领域中,人们越来越多的利用图像信息来认识和判断失误,解决实际问题,因此图像信息获得和处理显得尤为重要。Matlab是近几年来国内外最为广泛的优秀科技软件之一。其语法结构简单,具有极强的数值计算、数据分析、图形绘制及图像处理等功能,具有高质量的图形可视化效果和强大的界面设计能力。因而在数字图像处理中有着其他语言所无法比拟的优势。图像处理技术基本分为两大类:模拟图像处理和数字图像处理,数字图像处理是指将图像信号转换成信号并利用计算机进行处理的过程。数字图像处理技术主要包括以下内容:几何

3、处理、算术处理、图像增强、图像复原、图像重建、图像编码、图像识别、图像理解。Matlab是一套高性能的数值计算和可视化软件,拥有一个方便、界面友好的用户环境,能为各个层次的研究人员可直观、方便地进行分析、计算及设计工作,从而大大地节省时间。由于Matlab强大的功能,已成为应用于线性代数、自动控制理论、数理统计、数字信号处理等方面的基本工具。由于它的针对数值计算的交互式软件特性, 以其强大的数据处理能力和丰富的工具箱使得编程极为简单,可大幅度缩短应用程序开发周期、提高编程效率。然而Matlab自身所存在的某些缺点限制了它的应用范围,以致不能满足用户的高级需求。MATLAB图像工具箱提供了丰富的

4、图像处理函数主要有:图空间变换;邻域和块操作;二值图像操作;线性滤波和滤波器设计;变换域处理;图像分析和增强;图像修复;感兴趣区域处理;图像压缩;形态学运算等。VC是Windows平台下强有力的高级编程语言,能够方便快速地开发出界面友好,执行速度快,易于维护升级的软件系统。但VC只提供了些基本的数学函数库,当遇到复杂的数值运算时,重新编写程序代码将大幅度延长软件开发周期,增加软件开发成本。然而Matlab拥有独立的数学函数库,含有大量的数学函数,同时提供了对VC函数接口,用户可以方便地在VC的集成开发环境中调用,若将两者结合起来,必将提高软件开发效率。本文主要选取基于VC和MATLAB的数字图

5、像处理中图像识别功能进行课程设计,通过对系统的调试及学习,掌握MATLAB数字图像处理技术的基础知识及基本程序设计方法。关键字:VC、MATLAB、混合编程、数字图像处理、引擎(engine) 第一章 总体设计方案1.1 设计思路(1)界面显示方案方案一:利用MATLAB自带的GUI图形设计功能来进行用户界面设计。MATLAB 7.0版本的GUI设计工具较为全面,同时设计界面美感加强。部分程序命令:guide %打开设计工作台界面启动界面guide file%在工作台中打开文件名为file的用户界面MATLAB 的GUI是MATLAB人机交互的界面。由于GUI本身提供了windows基本空间支

6、持,并且具有良好的时间驱动机制,同时提供了MATLAB数学库的接口,所以GUI对于控制系统仿真的平台设计显得十分合适。图 1.1 GUI打开界面图方案二:Visual C+是一个全面的应用程序开发环境,掌握Microsoft基本类库(MFC)的层次结构,该层次结构包容了Windows API的用户界面部分。MFC以C+类的形式封装了大部分Win32 API,包含一个应用程序框架和很多的创建应用程序的组件,使用它可以降低应用程序开发的难度、可大大减少应用程序开发人员的工作量。MFC以层次结构进行组织,提供了大量的基类供程序员根据不同的应用环境进行扩充 ,允许在编程过程中自定义和扩展应用程序的类。

7、同时MFC开发的程序具备很好的系统兼容性。综合考虑:由于此次课程设计是基于VCVS和MATLAB的数字图像处理系统设计,老师强调需要结合VC来进行设计,并且考虑到系统的兼容性等因素。我采用Visual C+6.0软件和MATLAB 7.0来完成此次课程设计任务。这俩软件都是原来版本的升级版,有了很好的编辑效果,最终得到了很好的输出结果。经过对于系统的整体考虑,最后选择方案二。(2)混合编程方案方案一:调用MATLAB引擎。所谓MATLAB引擎(engine),是指一组MATLAB提供的接口函数,支持C/C+、Fortran等语言,通过这些接口函数,用户可以在其它编程环境中实现对MATLAB的控

8、制。与其他各种接口相比,引擎所提供的MATLAB功能支持是最全面的。通过引擎方式,应用程序会打开一个新的MATLAB进程,可以控制它完成任何计算和绘图操作。对所有数据结构提供100%的支持。同时,引擎方式打开的MATLAB进程会在任务栏显示自己的图标,打开该窗口,可以观察主程序通过engine方式控制MATLAB运行的流程,并可在其中输入任何MATLAB命令。该方案在Visual C+ 6.0编程中,程序较为简单,添加头文件“#include “engine.h”后配合基本的命令程序语句即可使用。方案二:MATLAB自带的C+complier -mcc,能将m文件转换为C/C+代码。因此,它为

9、C/C+程序调用m文件提供了另一种方法。同时可以脱离MATLAB运行环境独立生成可执行的.dll文件(动态连接库)和.lib文件(静态连接库),实现MATLAB与VC+的连接。该方案利用MATLAB和Visual C+ 6.0编程地方很多,且需要在VC中自己编写连接函数,难度较大。方案三:COM组件:组件对象模型(简称MCR)是以组件为发布单元的对象模型。它提供一种可以共享二进制代码的工业标准,允许任何符合标准的程序访问,所以COM作为不同语言之间的协作开发是非常方便的。MATLAB的COM编译器是在MATLAB 6.5中才开始提供的一个新工具,从MATLAB 7.0起,这个产品改名为MATL

10、AB Builder for COM。基于COM的混合编程方法也是Mathworks公司推荐使用的方法。综合考虑:以上三种方法中,采用MATLAB引擎方式,应用程序整体性能好,MATLAB引擎支持功能全面,但需要MATLAB后台运行,不能脱离MATLAB环境。而MCC方法和COM组件方法均可已脱离MAYLAB环境,应用程序运行效率高。开始我们选择mcc编译器的方法进行混合编程,但是经过后期的编程、运行和调试后发现,难度较大,无法及时完成本次课程设计任务。所以最终我们选择了调用MATLAB的引擎函数engine函数的方法,即方案一。(3)设计流图查阅资料设计方案及选择理论准备界面设计程序设计编译

11、连接系统调试设计成功图 1.2 总体设计流图1.2 总体设计框图开始初始界面打开文件原始图像高斯白噪声椒盐噪声中值滤波均值滤波图像锐化灰度变换图像复原自适应变换变换后的图像图 1.3方案总体框图 根据本方案总体框图进行界面编辑和后台程序编辑,从而进一步完善本次课程设计任务。 第二章 设计原理2.1 引擎介绍Matlab引擎,是Matlab提供的一系列程序的结合,它允许用户在自己的应用程序中对Matlab进行调用,将Matlab作为一个操作引擎使用,使其在后台运行。 同时Matlab提供的接口函数它采用客户机/服务器计算模式,并且支持VC语言。一般情况下,客户机是运行前端软件的PC机,并且知道如

12、何与服务器通信,服务器与此相对应,是接收请求信息,并采取相应行为的机器。具体在VC中使用Matlab引擎来编制程序时,VC是作为客户端出现的,即负责用户接口和提出数据请求,而Matlab则属于服务器端,即向客户端提供数据服务。VC客户端通过调用Matlab引擎与Matlab服务器建立连接,从而实现动态通信。其引擎调用全过程如图2.1所示。 图2.1 引擎调用全过程在Matlab环境中将Matlab函数编译成可以脱离Matlab环境使用的动态连接库,在VC环境中编写应用程序界面并加载调用动态连接库,实现二者之间的无缝连接,此种方法关键是对Matlab与VC接口进行编程。由于其完全脱离Matlab环境,因此得到广泛应用。采用目前较为流行的Windows应用程序开发环境VC完成图形界面设计、数据管理、低层I/O操作,利用Matlab数学库完成软件核心算法设计,很大程度上降低了编程难度和工作量,缩短开发周期,提高软件可靠性。尤其利用编译器调用Matlab动态连接库实现脱离Matlab环境下二者的紧密结合,更极大拓展了Matlab 的应用范围。调用Engine接口函数的VC应用程序被称为引擎程序。引擎函数用来控制Matlab计算引擎的工作, 主要函数有六个,如下表2.1所示。endogen打开一个Matlab计算引擎engPutArray输送一个Matlab矩阵到Matlab计算引擎e

展开阅读全文
相关资源
相关搜索

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

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