基于VB6.0的数据提取软件设计毕业设计论文1

上传人:1888****888 文档编号:39476661 上传时间:2021-11-11 格式:DOC 页数:40 大小:174.50KB
收藏 版权申诉 举报 下载
基于VB6.0的数据提取软件设计毕业设计论文1_第1页
第1页 / 共40页
基于VB6.0的数据提取软件设计毕业设计论文1_第2页
第2页 / 共40页
基于VB6.0的数据提取软件设计毕业设计论文1_第3页
第3页 / 共40页
资源描述:

《基于VB6.0的数据提取软件设计毕业设计论文1》由会员分享,可在线阅读,更多相关《基于VB6.0的数据提取软件设计毕业设计论文1(40页珍藏版)》请在装配图网上搜索。

1、中北大学2014届毕业设计说明书毕业论文基于VB6.0的数据提取软件设计1 绪论20212021年o月a日11 本课题的研究背景及意义数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门

2、学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得实际成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,以致获得了月球的地形图、彩色图及全景镶嵌图,获得了非凡

3、的成果,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。在以后的宇航空间技术,如对火星、土星等星球的探测研究中,数字图像处理技术都发挥了巨大的作用。数字图像处理取得的另一个巨大成就是在医学上获得的成果。1972年英国EMI公司工程师Housfield发明了用于头颅诊断的X射线计算机断层摄影装置,也就是我们通常所说的CT(Computer Tomograph)。CT的基该方法是根据人的头部截面的投影,经计算机处理来重建截面图像,称为图像重建。1975年EMI公司又成功研制出全身用的CT装置,获得了人体各个部位鲜明清晰的断层图像。1979年,这项无损伤诊断技术获得了诺贝尔奖,说

4、明它对人类作出了划时代的贡献。与此同时,图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的

5、Marr提出的视觉计算理论,这个理论成为计算机视觉领域其后十多年的主导思想。图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索的新领域。当前平面媒体、动态广告等基于图像数据处理的应用已深入到了人们生活的方方面面。电子相框等高新科技的大力发展也很大程度上依赖于图像数据提取技术的发展。本课题就是在这样的背景下进行研究的。本课题的研究对于平面媒体、广告宣传、电子相框中的图像处理有很好的帮助。可以很好的提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变

6、换等,以改善图像的质量。可以更好的提取图像中所包含的某些特征或特殊信息,这些被提取的特征或信息往往为计算机分析图像提供便利。提取特征或信息的过程是模式识别或计算机视觉的预处理。提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等。可以更好的对图像进行数据的变换、编码和压缩,以便于图像的存储和传输。总的来说,该课题的研究,具有很强的现实意义。12 本课题的研究现状(1)图像数据处理目前常用方法主要有以下几个方面: 图像变换:由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔

7、什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。 图像编码压缩:图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。 图像增强和复原:图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增

8、强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。 图像分割:图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是图像处理中研究的热点之一。 图像描述

9、:图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。 图像分类(识别):图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越

10、来越受到重视。图像数据处理目前应用的工具可分为三大类:第一类包括各种正交变换和图像滤波等方法,其共同点是将图像变换到其它域(如频域)中进行处理(如滤波)后,再变换到原来的空间(域)中。第二类方法是直接在空间域中处理图像,它包括各种统计方法、微分方法及其它数学方法。第三类是数学形态学运算,它不同于常用的频域和空域的方法,是建立在积分几何和随机集合论的基础上的运算。由于被处理图像的数据量非常大且许多运算在本质上是并行的,所以图像并行处理结构和图像并行处理算法也是图像处理中的主要研究方向。(3) 图像数据处理目前研究方向自20世纪60年代第三代数字计算机问世以后,数字图像处理技术出现了空前的发展,在

11、该领域中需要进一步研究的问题主要有如下五个方向:在进一步提高精度的同时着重解决处理速度问题; 加强软件研究,开发新的处理方法,特别要注意移植和借鉴其他学科的技术和研究成果,创造新的处理方法; 加强边缘学科的研究工作,促进图像处理技术的发展; 加强理论研究,逐步形成处理科学自身的理论体系; 时刻注意图像处理领域的标准化问题。 图像数据处理目前研究的特点: 处理信息量很大数字图像处理的信息大多是二维信息,处理信息量很大。如一幅256256低分辨率黑白图像,要求约64kbit的数据量;对高分辨率彩色512512图像,则要求768kbit数据量;如果要处理30帧/秒的电视图像序列,则每秒要求500kb

12、it22.5Mbit数据量。因此对计算机的计算速度、存储容量等要求较高。 占用频带较宽数字图像处理占用的频带较宽。与语言信息相比,占用的频带要大几个数量级。如电视图像的带宽约5.6MHz,而语音带宽仅为4kHz左右。所以在成像、传输、存储、处理、显示等各个环节的实现上,技术难度较大,成本亦高,这就对频带压缩技术提出了更高的要求。 各像素相关性大数字图像中各个像素是不独立的,其相关性大。在图像画面上,经常有很多像素有相同或接近的灰度。就电视画面而言,同一行中相邻两个像素或相邻两行间的像素,其相关系数可达0.9以上,而相邻两帧之间的相关性比帧内相关性一般说还要大些。因此,图像处理中信息压缩的潜力很

13、大。 无法复制全部信息由于图像是三维景物的二维投影,一幅图象本身不具备复现三维景物的全部几何信息的能力,很显然三维景物背后部分信息在二维图像画面上是反映不出来的。因此,要分析和理解三维景物必须作合适的假定或附加新的测量,例如双目图像或多视点图像。在理解三维景物时需要知识导引,这也是人工智能中正在致力解决的知识工程问题。 受人的因素影响较大数字图像处理后的图像一般是给人观察和评价的,因此受人的因素影响较大。由于人的视觉系统很复杂,受环境条件、视觉性能、人的情绪爱好以及知识状况影响很大,作为图像质量的评价还有待进一步深入的研究。另一方面,计算机视觉是模仿人的视觉,人的感知机理必然影响着计算机视觉的

14、研究。例如,什么是感知的初始基元,基元是如何组成的,局部与全局感知的关系,优先敏感的结构、属性和时间特征等,这些都是心理学和神经心理学正在着力研究的课题。13 本文研究内容及章节安排本文主要对图像像素提取方法进行了研究,并利用VB6.0进行了数据提取软件的设计。本文分为五章:第一章:首先介绍了本课题的研究背景、意义;研究现状;研究内容及章节安排。第二章:介绍了数字图像处理方法及数据提取方法。第三章:对本软件的设计平台VB软件开发平台及VB语言进行了详细的介绍。第四章:对该软件的设计过程进行了具体的介绍。第五章:对数据图像提取进行了总结和展望2 VB软件开发平台2.1 visual basic语

15、言Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。“Visual”指的是采用可视化的开发图形用户界面(GUI)的方法,一般不需要编写大量代码去描述界面元素的外观和位置,而只要把需要的控件拖放到屏幕上的相应位置即可;“Basic”指的是BASIC语言,BASIC是英文Beginners All purpose Symbolic Instruction Code的缩写,意思为初学者通用符号指令代码,一直都是程序设计入门的首选语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Activ

16、eX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 从设计新型的用户界面到利用其它应用程序的对象;从处理文字图象到使用数据库;从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过 Internet 的遍及全球分布式应用程序,都可在 Visual Basic 提供的工具中各取所需。VB是微软公司的一种通用程序设计语言,包含在Microsoft Excel、Microsoft Access等众多Windows应用软件种的VBA都使用VB语言,以供用户二次开发;目前制作网页使用较多的VBScript脚本语言也是VB的子集。利用 VB的数据访问特性,用户可以对包括Microsof

17、t SQL Server和其他企业数据库在内的大部分数据库格式创建数据库和前端应用程序,以及可调整的服务器端部件。利用ActiveX(TM)技术,VB可使用如Microsoft Word、Microsoft Excel及其他Windows应用程序提供的功能,甚至可直接使用VB专业版和企业版创建的应用程序对象。它的主要特点有:可视化的设计平台;面向对象的设计方法;事件驱动的编程机制;结构化的设计语言;友好的集成开发环境;具有强大的功能。2.2 语言特性VB 的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI 系统,但是又可以开发相当复杂的程序。VB 的程序

18、是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面 VB 程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加

19、入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。VB 的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。VB 使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB 对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口

20、的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。VB 使得大量的外界控件有了自己的生存空间。大量的第三方控件针对 VB 提供。VB 也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。2.3 编码规则(1)语言元素 VB的语言基础是BASIC语言,VB程序的语言元素主要由:关键字(如: Dim、Print、Cls);函数(如:Sin()、Cos()Sqr();表达式(如:Abs(-23.5)+45*20/3 );语句(如:X=X+5 、 IFELSEEND IF)等组成。(2)VB代码书写规则 1)程序中不区

21、分字母的大小写,Ab 与AB等效; 2)系统对用户程序代码进行自动转换: 对于VB中的关键字,首字母被转换成大写,其余转换成小写; 若关键字由多个英文单词组成,则将每个单词的首字母转换成大写; 对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式。(3)语句书写规则 1)在同一行上可以书写多行语句,语句间用冒号(:)分隔 2)单行语句可以分多行书写,在本行后加续行符:空格和下划线 _ 3) 一行允许多达255个字符(4) 程序的注释方式 1)整行注释一般以 Rem开头,也可以用撇号 ; 2)用撇号 引导的注释,既可以是整行的,也可以直接放在语句的后面,最方便; 3

22、)可以利用“编辑”工具栏的“设置注释块”、“解除注释块”来将设置多行注释。(5) 保留行号和标号 VB源程序接受行号与标号,但不是必须的(早期的BASIC语言中必须用行号)。 标号是以字母开始以冒号结束的字符串,一般用在GOTO语句(现在很少用)中。2.4重要常用语句介绍(1)AppActivate语句:激活一应用程序窗口。语法:AppActivate title, wait AppActivate 语句的语法具有以下几个命名参数:title 必需的。字符串表达式,所要激活的应用程序窗口的标题。可以使用 Shell 函数返回的任务识别码来替换 title,以激活应用程序。 wait 可选的。B

23、oolean值,说明在激活另一个应用程序之前调用的应用程序是否有焦点。如果为 False(缺省),那么,即使调用的应用程序没有焦点,也直接激活指定的应用程序。如果为 True,则调用的应用程序会等到有焦点后,才激活指定的应用程序。 说明:AppActivate 语句将焦点移动到命名的应用程序或窗口,但并不影响焦点是否最大化或最小化。当用户采取行动改变焦点或将窗口关闭时,就会将焦点从活动的应用程序窗口移动出去。可用 Shell 函数启动一个应用程序并设置窗口样式。在决定激活哪个应用程序时,请将 title 与每一个运行中的应用程序的标题字符串进行比较。如果没有完全匹配,就激活任何这样的应用程序,

24、其标题字符串以 title 开头。如果以 title 命名的应用程序有很多实例,则激活任何一个实例。(2)Call语句 返回 :将控制权转移到一个 Sub 过程,Function 过程,或动态连接库 (DLL)过程。语法:Call name argumentlistCall 语句的语法具有以下几个部分:Call 可选参数;关键字。如果指定了这个关键字,则 argumentlist 必须加上括号,例如: Call MyProc(0) name 必要参数,要调用的过程名称。 说明:调用一个过程时,并不一定要使用 Call 关键字。如果使用 Call 关键字来调用一个需要参数的过程,argument

25、list 就必须要加上括号。如果省略了 Call 关键字,那么也必须要省略 argumentlis 外面的括号。如果使用 Call 语法来调用内建函数或用户定义函数,则函数的返回值将被丢弃。若要将整个数组传给一个过程,使用数组名,然后在数组名后加上空括号。(3)Close语句 返回 :关闭 Open 语句所打开的输入/输出 (I/O) 文件。语法:Close filenumberlist可选的 filenumberlist参数为一个或多个文件号,其中 filenumber 为任何有效的文件号,语法如下:#filenumber , #filenumber . . .说明:若省略 filenumb

26、erlist,则将关闭 Open 语句打开的所有活动文件。当关闭 Output 或 Append 打开的文件时,将属于此文件的最终输出缓冲区写入操作系统缓冲区。所有与该文件相关联的缓冲区空间都被释放。在执行 Close 语句时,文件与其文件号之间的关联将终结。(4)Const语句 返回 :声明用于代替文字量的常数。语法:Public | Private Const constname As type = expression Const 语句的语法包含下面部分:Public 可选的。该关键字用于在模块级别中声明在所有模块中对所有过程都可以使用的常数。在过程中不能使用。 Private 可选的。

27、该关键字用于在模块级声明只能在包含该声明的模块中使用的常数。不能在过程中使用。 constname 必需的。常数的名称;遵循标准的变量命名约定。 type 可选的。常数的数据类型;可以是Byte、布尔、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String 或 Variant。所声明的每个变量都要使用一个单独的 As 类型子句。 expression 必需的。文字,其它常数,或由除 Is 之外的任意的算术操作符和逻辑操作符所构成的任意组合。 说明:在缺省情况下常数是私有的。过程中的常数总是私有的;它们的可见性无法改变。在标准模块中,可以用

28、 Public 关键字来改变模块级常数可见性的缺省值。不过,在类模块中,常数只能是私有的,而且用 Public 关键字也不能改变其可见性。为了在一行中声明若干个常数,可以使用逗号将每个常数赋值分开。用这种方法声明常数时,如果使用了 Public 或 Private 关键字,则该关键字对该行中所有常数都有效。在给常量赋值的表达式中,不能使用变量,用户自定义的函数,或 Visual Basic 的内部函数(如 Chr)。注意 常数可以使程序更具可读性,以及易于修改。在程序运行时,常数不会象变量那样无意中被改变。如果在声明常数时没有显式地使用 As type 子句,则该常数的数据类型是最适合其表达式

29、的数据类型。在 Sub、Function 或 Property 过程中声明的常数都是该过程的局部常数。在过程外声明的常数,在包含该声明的模块中被定义。在可以使用表达式的地方,都可以使用常数 (5)dim:声明变量并分配存储空间。语法:Dim WithEvents varname(subscripts) As New type , WithEvents varname(subscripts) As New type . . .Dim 语句的语法包含下面部分:WithEvents 可选的。关键字,说明 varname 是一个用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合

30、法的。使用 WithEvents,可以声明任意个所需的单变量,但不能使用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。 varname 必需的。变量的名称;遵循标准的变量命名约定。 subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数使用下面的语法: lower To upper , lower To upper . . . 如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有使用 Option Base 语句,则下界为 0。 New 可选的。可隐式地创建对象的关键字。如

31、果使用 New 来声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用 Set 语句来给该对象引用赋值。New 关键字不能声明任何内部数据类型的变量,以及从属对象的实例,也不能与 WithEvents 一起使用。 type 可选的。变量的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String * length (对定长的字符串)、Object、Variant、用户定义类型、或对象类型。所声明的每个变量都要一个单独的 As type 子句。 说

32、明:在模块级别中用 Dim 声明的变量,对该模块中的所有过程都是可用的。在过程级别中声明的变量,只在过程内是可用的。可以使用 Dim 语句在模块级或过程级中声明变量的数据类型。例如,下面的语句声明了 Integer 类型的变量。Dim NumberOfEmployees As Integer也可以使用 Dim 语句来声明变量的对象类型。下面的语句为工作表的新建实例声明了一个变量。Dim X As New Worksheet如果定义对象变量时没有使用 New 关键字,则在使用该变量之前,必须使用 Set 语句将该引用对象的变量赋值为一个已有对象。在该变量被赋值之前,所声明的对象变量有一个特定值

33、Nothing,这个值表示该变量没有指向任一个对象实例。也可以使用带空圆括号的 Dim 语句来定义动态数组。在定义动态数组后,可以在过程内使用 ReDim 语句来定义该数组的维数和元素。如果试图在 Private,Public 或 Dim 语句中重新定义一个已显式定义了大小的数组的维数时,就会发生错误。如果不指定数据类型或对象类型,且在模块中没有 Deftype 语句,则该变量按缺省设置是 Variant 类型。当初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (),而定长的字符串则用 0 填充。Variant 变量被初始化为 Empty。用户自定义类型的变量的

34、每个元素作为各自独立的变量进行初始化。注意: 当在过程中使用 Dim 语句时,通常将 Dim 语句放在过程的开始处。2.5 程序设计基本步骤VB程序设计的基本步骤: (1)分析问题,设计算法; (2)建立用户界面的对象; (3)对象属性的设置;(4)对象事件过程及编程;(5)保存程序; (6)程序调试和运行; (7)生成可执行文件; (8)发行程序,及生成安装程序。2.6 VB软件开发平台1991年,微软公司推出了 Visual Basic 1.0。当时引起了很大的轰动。这个连接编程语言和用户界面的进步被称为Tripod(有些时候叫做Ruby),最初的设计是由阿兰库珀(Alan Cooper)

35、完成的。许多专家把 VB 的出现当做是软件开发史上的一个具有划时代意义的事件。在当时,它是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝试在VB的平台上进行软件创作。微软也不失时机地在四年内接连推出 2.0、3.0、4.0 三个版本。并且从 VB 3.0 开始,微软将Access的数据库驱动集成到了 VB 中,这使得 VB 的数据库编程能力大大提高。从 VB 4.0 开始,VB 也引入了面向对象的程序设计思想。VB 功能强大,学习简单。而且,VB 还引入了“控件”的概念,使得大量已经编好的 VB 程序可以被我们直接拿来使用。2002年开始,微软将.NET Framework与 Visua

36、l Basic 结合而成为 Visual Basic .NET (vb .net),重新打造 VB,新增许多特性及语法,又将 VB 推向一个新的高度。最新版本 Visual Basic 2012 也将带来许多令人期待的新功能。通过几年的发展,它已成为一种专业化的开发语言和环境。用户可用Visual Basic 快速创建Windows程序,并可编写企业水平的客户端/服务器程序及强大的数据库应用程序。2.7 VB6.0平台上的常用控件(1) 命令按钮类的控件:属性:1) Caption属性:用来显示在控件上的标题。2) Enable属性:控制控件的激活状态灰色或可用。3) Appearance属性

37、:值为1时,则以3D效果显示该控件,0则不然。4) Backcolor属性:用来改变在按钮上显示图像的背景色。5) Cancel属性:该属性决定按钮是否为一个”取消”按钮。6) Default属性:决定哪一个命令按钮控件是窗体的缺省命令按钮.7) Font属性:控制各种文字字体类型.8) Left,top,height,width属性:设定控件的位置与大小.9) Style,picture属性:决定按钮的显示方式是否为图像形式出现.10) Visible属性:确定控件运行时是否为可见.11) Index属性:当控件为一控件数组时,此属性值为该控件在数组的下标值.12) DownPicture属

38、性:设置/返回一个对图片的引用,该图片在按钮被单击处于压下状态时显示。13) DisabledPicture属性:设置/返回一个对图片的引用,该图片在控件无效时显示在控件中。14) MaskColor属性:设置/返回一个在按钮的图片中作为“掩码“的的颜色15) Picture属性:设置返回commandButton控件中要显示的图片。事件:1)单击事件Click事件 触发与适用此事件是在一个命令按钮对象上按下然后释放一个鼠标按钮时发生。命令按钮的Click事件仅对当单击鼠标时发生。 事件处理过程按钮单击事件的处理过程为: Private Sub object-Click(Index As In

39、teger)其中Object为引发该事件的对象名称。如果是命令按钮的控件是数组,则需要使用Index参数标识该控件。2)获得焦点GotFocus事件 触发与适用 当命令按钮获得焦点产生该事件,获得焦点可以通过诸如Tab切换或单击对象之类的用户动作,或在代码中用SetFocus方法改变焦点来实现。 事件处理过程命令按钮GotFoucs事件处理过程为:Private Sub Object-GotFocus(Index As Integer)3)LostFocus事件:当一个对象失去焦点时发生4)KeyDown事件:当命令按钮具有焦点时按下一个键时发生5)KeyUp事件:当命令按钮具有焦点时释放一个

40、键时发生。6)KeyPress事件:当用户按下或松开一个ANSI键时发生。7)MouseDown事件:当在命令按钮上按下鼠标按钮时发生。8)MouseMove事件:当命令按钮上移动鼠标时发生。9)MouseUp事件:当在命令按钮上释放鼠标按钮时发生。(2)文本框类的控件:属性:1) Text属性:通过像text属性赋值的方法来改变该属性的值。2) Maxlength属性:该属性设定在文本框控件中能够输入的最大字符数。3) Multline属性:该属性设定text字符串中是否接受换行符。4) Scrollbars属性:该属性决定是否为文本框加滚动条。5) Passwordchar属性:该属性设定

41、输入文本的特殊显示字符,在设计密码程序时非常有用。6) Change事件属性:文本框的内容发生改变时,相应的控件之间发生相应的改变,具有即时性。7) Keypress:事件由用户在文本框控件中按任意键触发。8) Alignment属性:设定控件中的文本对其方式9) Appearance属性:设定一个对象在运行时是否可以3D效果显示。10) BackColor属性:设置返回背景色11) BorderStyle属性:设置对象的边框样式12) DataField属性:设定数据使用者将被绑定到的字段名13) DataFormat属性:设定DataFormat对象,用于数据绑定14) DataMembe

42、r属性:从数据供应程序提供的几个数据成员中返回/设定一个特定的数据成员15) DataSource属性:设定控件绑定的一个数据源16) DragIcon属性:设定图标,它将在拖放操作中作为指针显示17) DragMode模式:设定一个值,确定在拖放操作中所用方式 事件:1)Change事件:当改变文本框内容时发生2)Click事件:鼠标单击控件时发生3)DblClick事件:用鼠标左键双击控件时发生4)DragDrop事件:在一个完整的拖放动作完成或使用Drag方法,并将其Action参数设置为2时发生5)DragOver事件:在拖放操作正在进行时发生6)GotFocus事件:当一个命令按钮获

43、得焦点时发生7)LinkClose事件:当一个DDE对话结束时发生8)LinkError事件:当一个DDE对话框过程中出现错误时,该事件发生9)KeyDown事件:当命令按钮具有焦点时按下一个键时发生10)Validate事件:在焦点转换到另一个控件之前发生,此时该控件的Causes Validation 属性值设置为True (3) 单选按钮类的控件:属性:1) Caption属性:显示在控件上的文本,是单选按钮的标题。2) Alignment属性:决定单选按钮的标题在控件上的位置。3) Enable属性:该控件为灰色时为false,表示运行时不可用。4) Index属性:属性值表示为单选按

44、钮组成的控件中某个按钮的索引值。5) Tabindex属性:建立控件时,vb自动为其分配一个tabindex值,利用tab键可以在控件之间切换焦点。6) Value属性:反映控件状态的属性,返回true表示已选择了该按钮。7) Appearance 属性:设置/返回一个对象在运行时是否以3D效果显示。8) BackColor 属性:设置/返回背景色。9) Container 属性:设置/返回Form上的控件属性。10)DataField 属性:设置/返回数据使用者将被绑定到的字段名。11) DataFormat 属性:设置/返回DataFormat对象,一个绑定对象将附加到它。12) Disa

45、bledPicture 属性:设置/返回一个对图像的引用,该图片在控件无效时显示在控件中。13) DownPicture 属性:设置/返回一个对图片的引用,该图片在控件单击下处于压下状态时显示。事件:1)Click 事件:鼠标单击控件时发生。2)DbClick事件: 当在一个对象上按下和释放鼠标按钮并再次按下和释放按钮时,该事件发生。3)DragDrop事件:在一个完整的拖放动作或使用Drag方法,并将其Action参数设置位2时,该事件发生。4)DragOver事件: 在拖放操作正在进行时发生。5)GotFocus事件: 当获的对象焦点时发生。6)LostFocus事件:当对象失去焦点时发生

46、。7)KeyDown事件:当控件具有焦点时按下一个键时发生。8)KeyUp事件: 当控件具有焦点时释放一个键时发生。9)KeyPress事件:当用户按下或释放ANSI一个键时发生。10) MouseDown事件:当在控件上按下鼠标键时发生。11)MouseMove事件:在控件上移动鼠标时发生。12)MouseUp事件:在控件上释放鼠标时发生。(4)框架类的控件:属性:1) List属性:列表框控件的表项是使用数组的方式保存,数组的每一个元素存储列表控件的一个表项2) Listcount属性:控件列表部分项目的个数。3) Mutselect属性:可以设置列表框为单选或允许多选属性.4) Sele

47、ctd属性:标示一个数组,数组各元素为:Selected(0),selected(1)(5)滚动条类的控件:属性:1) Value属性:滚动条上滑块所在位置由value值所决定。2) Max和min属性:对value值的最大,最小进行限制。3) Largechange属性:用户点击滚动条与键头之间的区域时,value的改变量。4) OnClick事件:用来添加按钮的单击事件所执行的程序代码。(6)定时器类类的控件:属性:1) Interval属性:表示定时的时间间隔,以毫秒为单位。2) Enable属性:为true时(缺省值),激活定时器开始计时;为false时处于休眠状态.3 图像数据提取常

48、用方法3.1 像素点的颜色组成在电脑或者电视上能看到色彩斑斓的图像,其实这些图像都是由一个一个像素点构成的。不管是彩色还是黑白图像,除了描述每个像素所在的行和列外,还必须描述其颜色值.在一个有256级灰度的黑白图像中,每个像素颜色只需用1个字节表示;而在彩色图像中,每个像素都是由红、绿、蓝3基色调和而成,所以一个像素就需要用多个字节来表示.如果给彩色图像的每个像素的颜色信息分配3个字节,每个颜色分量用1个字节来表示,那么每个颜色分量就有256级,可以表示的颜色就有“256256256”种.如果需要对图像进行柔化、扩散等处理,就必须获得图像的每个像素以便进行相应地处理。在内存中,每个像素点由4字

49、节构成,这4个字节的代表的含义如下:(1)第一个字节决定像素的红色值(2)第二个字节决定像素的绿色值(3)第三个字节决定像素的蓝色值(4)第四个字节决定像素的透明度值。上述每一个字节的取值是从0到255,比如(255,0,0,255),在内存中是用二进制表示,即它是一个32位的串:11111111 00000000 00000000 11111111 其中:0代表完全透明,255代表完全不透明。图1.13.2 图片数据提取常用方法方法1)利用图片框的Point方法.图片框提供了Point方法可以获得图像每个像素的颜色值,具体格式为: pix=图片框对象.Point(x,y)其中,x和y表示每个

50、像素的位置,pix可以获得对应位置的颜色值. 在窗体上放2个图片框,分别是picture1和picture2,将其ScaleMode属性设置为pixel.在pic2ture1中放上要处理的原图11,在picture2中显示处理后的效果.由于需要保存每个像素的颜色值,而每个颜色又由3种基色组合而成,所以需要定义一个三维数组tx保存每个位置上的3个颜色分量的值.比如用tx(0,i,j)保存对应位置的红色分量值,tx(1,i,j)和tx(2,i,j)分别保存对应位置的绿色分量和蓝色分量的值.方法2)使用DIB方法.利用上面的Point方法虽然可以读取图像的像素值, 却很慢.在VB中快速获取图像像素的

51、方法是使用DIB方法.DIBDevice2Independent Bitmap的简称,提供了对图像处理的一种方法.仍将图片放在图片框Picture1中,将其Auto2Size属性设置为True,ScaleMode属性设置为pixel,将显示器调到32位色.同样,若将每个像素的信息保存在tx数组中,对于32位图像,每个像素需分配4个字节,通过图片框的ScaleWidth和ScaleHeight属性可以知道图像的水平像素个数w为Picture1.ScaleWidth+1个,垂直像素个数h为Picture1.ScaleHeight+1,所以可以定义数组tx(3,w-1,h-1). 利用DIB方法获得

52、图像的像素,需要利用API 函数GetDIBits和描述BMP图片信息的数据结构.3.3 数字图像处理常用方法数字图像处理是近年来电子、通讯和计算机等领域的热门研究领域,其在科研、经济、军事、娱乐等等国计民生的各个领域都具有非常广阔的应用前景。数字图像处理处是一门交叉学科,涉及数学、计算机、电子、通讯、物理等等众多的基础和应用学科。数字图像处理的研究范围也非常宽泛,包括图像增强、图像复原、数学形态学、图像分析、图像编解码、模式识别、视频图像处理等等众多分支领域。从本质上看,图像是大量信息的集合,是人们获取信息 的最主要来源。但通常情况下,直接获取的图像并不能被人们所用,需要采取一定的手段进行处

53、理,而计算机技术的发展则给图像处理提供了有效手段。计算机处理的图像是数字化的图像,数字图像的实质是由量化的采样数值组成的二维矩阵。一幅数字图像由许多划分为不同像素元素的区域组成,其中每一个像素都具有两个不同的属性:位置和灰度。通过对图像的所有像素点进行量化表示后,一幅图像就被表示成一个数字矩阵,能够被计算机处理,不同的处理方法和技术就形成了数字图像处理技术虽然很难准确界定数字图像处理的定义,但一般可以这样描述数字图像处理的概念,指为了某种目的,利用计算机或者其他处理硬件,对获取的数字化图像按照某种处理方法和技术进行变换,而得到图像的另一种表现形式。数字图像处理的本质就是从图像到图像的变换,通常

54、其目的在于准确获取图像中包含的特定信息,提高图像的实用性。通常所说的图像处理技术就是指利用计算机对图像进行处理的技术,主要包含色度处理、亮度处理以及图像的平滑、锐化、去噪等方面的内容。综合来看,数字图像处理具有两个方面的特点:首先,数字图像通常信息量较大。对于普通一幅数字图像,可以看成是由许多的像素组成的,通常为了保证精度,每个像素的灰度值至少要采用8bit,对于精度要求较高的场合,要达到l2bit、16bit或24bit以上。因此,仅仅对于尺寸为10241024的八位图像,其大小就达到10241024=1MB,数字图像包含如此多的数据量给计算机存储、传输和处理都带来负担。其次,数字图像处理技

55、术综合性强。在数字图像的处理过程中,需要涉及非常多的基础理论知识,尤其许多相关的边缘学科知识对数字图像的处理有很大的影响。即使对于计算机图像处理领域,在图像处理过程中也涉及大量软件、硬件、网络传输、数据接口等多项技术。 早期的发展中,对于图像处理的主要目的是为了改善图像的视觉质量。上世纪七十年代以来,随着计算机技术和人工智能等领域快速发展,数字图像的处理开始更高的层次发展。上世纪九十年代以后,小波理论迅速发展,并被认为是信号处理与图像分析领域中的有效方法。迄今为止,随着计算机科学技术的迅猛发展和相关算法及理论的不断完善,数字图像处理技术已经有了重大的发展,成为较有前景的新型学科。当前,图像处理

56、领域的发展趋势是计算机数字图像处理。 图像的数字处理是指将获取的模拟格式的图像转变成数字图像,根据应用需求,在建立的特定的物理和数学模型上对图像进行特定的处理,实现应用需求。根据图像处理的层次和研究方法,对数字图像分析和处理的研究可以分为3个方面:图像处理、图像分析和图像理解其中,图像处理主要指对图像进行各种加工以改善图像的效果,为后续的图像识别和理解奠定基础。图像处理的主要目的是消除图像噪声、增强图像信息、消除非均匀性和改善图像质量等。随着技术的进步和应用领域的拓展,对图像处理技术的要求也越来越高,计算机技术和先进的数学理论开始广泛应用于图像处理。图像处理重点包括图像输入和图像预处理两个部分

57、。图像的预处理是图像分析和处理的基础,对于后续的图像分割和目标识别等步骤有重要意义。其中非均匀性校正和图像增强是图像预处理技术的两个重要方向。非均匀性校正就是对图像象素作修正,使整幅图像表现均匀。图像增强是指对图像的某些特征,如边缘、轮廓、对比度等进行强调或突显,图像增强的结果能加强对特定信息的识别能力,使图像中感兴趣的特征得以加强,从而使这些特征的检测和识别变得更加容易。 实际上,不同的图像增强算法图像处理的侧重点也各不相同,一种算法一般只能解决图像中的某一类问题。为了增强图像的整体视觉效果,可以考虑将各种图像增强方法进行融合,实现对图像的综合处理。 图像分析也可以称为图像识别,主要是对图像

58、中感兴趣的目标进行检测和测量,以获得它们的客观信息,从而建立对图像的描述。图像识别技术的实现除了要应用图像的相关方法,还涉及到模式识别、计算机视觉和统计学习理论。图像的自动识别有两个研究方向:第一是利用提取目标特征自动识别目标的研究;第二是利用前视模板匹配自动识别目标的研究。对识别算法的开发可归纳为两类:一类是基于目标特征提取的识别方法,如人工神经网络技术、支持向量机算法;另一类是基于目标模板匹配的方法。图像理解的重点是在图像分析和识别的基础上进一步研究图像中各个目标的性质和它们之间的相互联系,得出对图像内容含义的理解以及对原始成像客观场景的解释,从而指导和规划行动。4 软件设计与实现4.1

59、需求分析该软件主要功能是要打开一张图片并提取其像素值。因此软件功能可分为两方面:打开一张图片;提取像素值。利用Vb打开一张图片的方法主要有两种:一种是添加picturebox或image控件,利用loadpicture载入一张图片。但该方法的缺点是,每次打开图片前必须修改程序或属性里的picture值,特别不方便,所以我选择用OPEN对话框来打开图片。因为所打开的图片的大小不一,而软件的界面又是一定的,所以选择了添加水平滚动条hscrollbar控件和垂直滚动条vscrollbar控件。方便浏览各种尺寸的图片大小。添加了label控件,方便查看图片中任意点的像素值大小及RGB值。添加按钮,控制

60、打开、退出、读取像素等操作。对按钮及图片进行编码。循环读取图片中每一点的像素值,并利用Open F:图片像素.txt For Append As #1在F盘中创建 图片像素.txt文件,并将图片的像素值保存在文件里。4.2界面设计(1)创建工程并在该工程中新建一个Form,其属性值如下:名称=frmduquCaption=图片像素提取软件Backcolor调为淡绿图 4.1 创建工程图图 4.1(2)在窗体上添加一个picturebox控件,其属性值为:名称=picture1Backcolor调为淡绿图 4.2 添加picturebox控件图(3)在picture1控件上添加一个picture

61、box控件,其属性值为:名称=picture2Autosize=truePicture2.ScaleMode = 3-PixelPicture=毕业设计.jpg图 4.3 添加picturebox控件图(4)在窗体上添加一个水平滚动条hscrollbar控件,命名为“Hscroll1”,一个垂直滚动条vscrollbar控件,命名为“vscroll1”图 4.4 添加滚动条图(5)在窗体上添加一个commonDialog控件,其属性值为:名称:commondialog1Filter=*.jpg|*.jpg|*.gif|*.gif|*.bmp|*.bmp图 4.5 添加对话框图(6)在窗体上添加

62、三个按钮,分别命名为“cmdopen”、“cmduqu”、“cmdexit”其caption属性值为:“打开”、“读取像素并保存”、“退出”。图 4.6 添加按钮图(7)在窗体上添加label控件,其属性值为:Caption=读取某点像素值图 4.7 添加label控件图设计完成的界面:图 4.8 设计完成的界面图4.3 程序设计(1)在Form的通用声明中添加一个名为compare的子程序,该子程序的作用是用来比较图片与图片框的大小。当图片高度(宽度)小于图片框高度(宽度)时,使图片居中。当图片宽度(高度)大于图片框的时,令滚动条有效。代码如下:Public Sub compare()If

63、Picture2.Height = Picture1.Height Then 当图片高度小于图片框高度 VScroll1.Enabled = False 使垂直滚动条不响应鼠标时间 Picture2.Top = (Picture1.Height - Picture2.Height) / 2 使图片垂直居中Else 当图片高度大于图片框高度 VScroll1.Enabled = True 使垂直滚动条响应鼠标时间 Picture2.Top = 0 VScroll1.Max = Picture2.Height - Picture1.Height 设置滚动最大值End IfIf Picture2.Width = Picture1.Width Then 比较图片和图片框的宽度 HScroll1.Enabled = False Picture2.Left = (

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!