毕业论文.doc

VB图像处理工具设计(论文+源代码)

收藏

资源目录
跳过导航链接。
VB图像处理工具设计论文源代码.rar
VB图像处理工具设计(论文+源代码)
图像处理工具
毕业论文.doc---(点击预览)
毕业设计源码
DialogAPI.bas
FFTMod.bas
frmAbout.frm
frmAbout.frx
frmColorCharge.frm
frmColorCharge.frx
frmControls.frm
frmControls.frx
frmDuibidu.frm
frmDuibidu.frx
frmFFT.frm
frmFont.frm
frmFontStyle.frm
frmHecheng.frm
frmHecheng.frx
frmMain.frm
frmMain.frx
frmNew.frm
frmNew.frx
frmPaint.frm
frmPaint.frx
frmSelector.frm
frmSize.frm
frmSize.frx
frmTool.frm
frmTool.frx
GuiApi.bas
History.frm
Hstory.frm
MSSCCPRJ.SCC
PHMod1.bas
PHMod2.bas
PublicMod.bas
Simplepaints.bas
texiao.bas
图像处理.vbp
图像处理.vbw
cursors
examples
icon
images
压缩包内文档预览:(预览前20页/共24页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:149910497    类型:共享资源    大小:1.07MB    格式:RAR    上传时间:2021-10-10 上传人:好资料QQ****51605 IP属地:江苏
20
积分
关 键 词:
VB 图像 处理 工具 设计 论文 源代码
资源描述:
VB图像处理工具设计(论文+源代码),VB,图像,处理,工具,设计,论文,源代码
内容简介:
浙师大信息科学与工程学院毕业设计 第 22 页基于VB的数字图像处理技术开发与研究浙江师范大学本科毕业设计(论文)( 2004届 )设计题目 基于VB的数字图像处理技术的开发与研究 学院 计算机科学与工程学院 专业 计算机科学与技术班级计本001班 学号 44号作者姓名指导老师 奚永旺 徐慧英(讲师)完稿时间 2004.4.20 设计成绩 22浙师大信息科学与工程学院毕业设计附录目 录12223455678999999101011111114151516161818181821摘要 引言 第一章 系统的概述 1.1 系统的主界面 1.2 系统的功能 1.3 系统的简单操作 第二章 Visual Basic的介绍及API函数 2.1 Visual Basic 简介 2.2 Windows API 函数第三章 图像处理技术 3.1 过滤 3.2 彩色转换 3.3 卷积处理 3.4 滤波 3.4.1 最大值滤波 3.4.2 最小值滤波 3.4.3 中值滤波 3.5 对比度增强 3.6 FFT分析 第四章 系统软件设计 4.1 程序设计 4.1.1 需求分析4.1.2 总体设计 4.1.3 详细设计4.1.4 编码和测试4.2 关键技术 4.2.1 代码转换4.2.2 API函数调用4.2.3 然后显示调色板中的颜色4.2.4 工具栏中的工具调用4.2.5 菜单栏的编辑4.2.6 历史框恢复的原理4.2.7 实现两幅图像叠加成新图像4.3 常见问题及回答结束语 参考文献 附录 外文翻译1外文翻译2学术论文 基于VB的数字图像处理技术的开发与研究浙江师范大学信息科学与工程学院 计本001班 奚永旺指导教师 徐慧英(讲师) 摘要:本文首先介绍数字图像处理技术的背景和意义,然后介绍基于VB的所完成的图像处理应用软件,具体介绍该软件的功能、结构及简单操作。接着介绍一下VB和Windows的API函数,最后着重介绍软件中一些图像处理技术,关键技术讲解利用VB中的API函数,并通过VB编程语言如何进行图像处理的实现,介绍在这个设计过程中碰到的难题及解决方法。关键词: Visual Basic、API、图像处理、FFTAccording to the VB arithmetic figure picture handles technical development and researchAbstract: This text introduces first the arithmetic figure picture handles technical background with meaning, then introduction according to the VB a picture for completing handles to apply the software, introducing function, construction and simple operations of that software in a specific way.Introduce the VB immediately after with the Windows the function of API, emphasize to introduce finally the some picture in inside in software handles technique, the key technique explains in detail the exploitation the function of API in the VB, and passes the VB weave the distance language how to proceed the picture handles of realize, introduce the hard nut to crack run into in this design process and solute the method.Key words: Visual Basic、API、图像处理、FFT引 言随着科学技术的不断发展,计算机的更新速度不断提高,人们的思想文化素质的提高,对图像的要求也越来越高。因此把原始图像与计算机结合起来,从而创作出许多更加完美的图像,满足人们的需求。计算机图像处理,是指利用计算机对图像进行一系列加工,以便获得人们所需要的效果。图像是人类获取和交换信息的主要来源,人类感知外界信息,80%以上是通过视觉得到的。因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。图像处理或图像分析方法的应用越来越广泛,其主要理论基础是形态数学,立体学,集合论等。图像处理或图像分析方法的应用越来越广泛,其主要理论基础是形态数学,立体学,集合论等。图像处理的应用领域很广,大致可以分为六大领域以及十余个子领域:材料科学:光学材料,金属材料,晶体材料,陶瓷建筑材料。地学:岩矿结构,岩体裂隙特征,土体颗粒。生命科学:生物,植物,医学,基因。地理学:经济地理,土地资源,地貌,气象学。机器人: 包括电路设计,识别等。鉴定:指纹鉴定,财务印章管理,防伪鉴定等。图像处理虽然也可以用光学方法或模拟技术来实现,但目前主要是利用计算机来实现,称为数字图像处理。因此,图像处理一般是指数字图像处理。常见的图像处理有图像数字化、图像编码、图像增强、图像复原、图像分割与图像分析等。经过处理后的图像,一定能够更好的被用于工业或者个人目的。为此开发这个数字图像处理软件,能够处理一些图像,并对图像处理技术此方面进行深入的研究。第一章 软件系统的概述因在本章节中,我们将对基于VB图像处理软件进行分析。给出它的主体界面,能实现的功能以及系统的简单操作。1.1系统的主体界面由于现在关于图像处理的应用软件很多,优秀的有Adobe公司的Photoshop、Macromedia公司的Fireworks等,它们的版本不断在更新,功能也在不断的提高。本应用软件就参照图像处理软件新视觉的主体界面。本软件的主体界面如下:包括主界面、工作区、工具栏、调色板、历史框。如图1图11.2系统的功能该系统的功能主要集中在菜单栏和工具栏中,菜单栏中所体现的都是处理图像的功能。包括以下方面:1.新建一幅图像,或者打开、保存、关闭和退出等功能。2.对图像进行复制、粘贴、剪切、全选、取消选择和翻转。其中翻转包括水平翻转和垂直翻转。3.过滤图像,包括锐化、浮雕、腐蚀、风化。4对图像进行滤波处理:包括最小值滤波处理、最大值滤波处理和中值处理。5.对彩色图像进行变换:包括彩色转灰度、彩色转黑白、平滑处理、霓红处理。6.软化图像,包括红色、绿色、橙色;硬化图像,包括红色、绿色、蓝色。7.对图像进行卷积处理,包括水平增强、垂直增强和双向增强。8.对图像进行边缘探测,例如右下边缘抽出,拉普拉斯(8邻域)。9.给图像进行对比度增强,进行FFT分析,以及对两幅图像进行合成。工具栏中的功能主要体现在工具中,正如平时画图工具的工具一样,可以选择一定的区域,放大图像、画圆、画方,输入文字、剪切一定的区域,简单的渐变等。1.3 系统简单操作举两个简单的例子:其一,我们要处理一幅图片,要想得到一个浮雕的效果。那么,首先在文件菜单项中选择打开文件,到指定的目录下选择你需要处理的图片,打开之后,在菜单栏中的过滤选项中选择浮雕,那么软件就执行相应的操作,进行图像处理。处理完后,如果不需要其它操作,就可以在文件菜单项中选择保存项,保存到你指定的目录下。处理后处理前其二,我们要自己建一幅自己的图片。选择菜单栏中文件下的新建,然后在工作区,选择工具条的多种工具,可以画圆,也可以画放方,剪切一定的区域,进行简单的渐变色,输入文字等,然后保存即可。第二章Visual Basic的介绍及API函数2.1 Visual Basic简介Visual Basic(简称VB)是美国微软公司开放的一种可视化编程工具。它功能强大、简单易学,能够方便快捷地开放Windows应用程序。它主要沿袭了BASIC系列语言的语法,非常简洁。Visual Basic中的“Visual ”,其含义是“可视化的”,指的是开发图形用户界面(GUIGraphical User Interfaces)的方法。“Basic”指的是BASIC(Beginners All-Purpose Symbol Instruction Code,即初学者通用符号指令代码)语言。Visual Basic与一般的BASIC语言不同,它是可视化的BASIC语言,不必编写大量代码是描述程序界面,而只要把预先建立好的对象拖放到窗口界面中即可。Visual Basic具有以下突出特点:1. 方便的开发环境。Visual Basic提供了完善的可视化编程环境。可以同时打开多个工程,可以建立多文档界面和单文档界面,具有强大的代码编辑器。在代码窗口中可以自动列出控件的属性和方法,可以自动提示函数的语法。2. 事件驱动的程序机制Visual Basic程序运行的基本方法是由“事件”来驱动程序运行的。不使用传统编程中的“主程序”和“子程序”之间细致的连带关系,而是将大规模的程序分为若干个单一的、独立的、小规模的段落程序,分别由各种“事件”来驱动执行,大大降低了程序的编写难度。Visual Basic版本简介:它有三种版本,各自满足不同的开发需要。1.学习版。利用学习版编程人员可以轻松的开发出Windows下的应用程序。它包括所有的内部控件及Grid、Tab和Data_Bound控件。学习版提供的文档有程序员指南、联机帮助、及Visual Basic联机手册。2.专业版。为专业编程人员提供了一整套进行系统开发的功能完备的工具。该版本包括学习版的全部功能同ActiveX控件,还包括Internet控件和Crystal Report Writer。专业版提供的文档有程序员指南、联机帮助、部件工具指南。3.企业版。使得专业编程人员能够开发功能强大的组内分别式应用程序。该版本包括专业版的全部功能连同工程版的控制系统等。企业版提供的文档除包括专业般的所有文档外,还有客户/服务器应用程序开发指南和SourceSafe Users Guide。因为本软件开发的平台为企业版Visual Basic 6.0,而且现在市面上流行的也是企业版Visual Basic6.0,因此这里我们主要介绍Visual Basic 6.0。Visual Basic 6.0是微软公司系列可视化开发工具Visual Studio 6.0中的产品,是创建Windows应用程序最简便、最快捷的开发工具之一。同时Visual Basic 6.0具有强大的图形图像处理功能,并广泛应用于图形设计、图像处理及多媒体技术中。2.2 Windows API函数Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。标准Win32 API函数可以分为以下几类:1. 窗口管理 2. 窗口通用控制3. Shell特性图形设备接口4. 系统服务 5. 国际特性 6. 网络服务而在我们的软件设计过程中将使用其中的两类,分别为窗口管理函数和图形设备接口函数。在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数。这些函数在程序员手中犹如积木块一样,可搭建出各种界面丰富、功能灵活的应用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用所见即所得的编程方式来开发具有精美用户界面和功能的应用程序。这些可视化编程环境操作简便、界面友好,比如:Visual C+,Delphi,Visual Basic等等。在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能。事实上,这些类库和控件都是构筑在Windows API的基础上的,但它们使用方便,加速了Windows应用程序的开发,所以受到程序员的普遍采用。有了这些类库和控件,程序员们便可以把主要精力放在整体功能的设计上,而不必过于关注具体细节。不过,这也导致了非常多的程序员在类库面前固步自封,对下层API函数的强大功能一无所知。实际上。程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数。虽然类库和控件使应用程序的开发容易得多,但它们只提供Microsoft Windows的一般功能,对于一些比较复杂和特殊的功能来说,单使用类库和控件是难以实现的,必须直接使用API函数来编写。API函数是构筑整个Windows框架的基石,只有充分理解和利用API函数,才能深入到Windows的内部,充分发挥各种32位平台的强大功能和灵活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。第三章 图像处理技术l 基本图像处理技术图像的颜色是由三种基本颜色,即红(R)、绿(G)、蓝(B)有机组合而成的,称为三基色。每种基色可取0到255的值,因此由三基色可组合成(256*256*256)1677万种颜色,每种颜色都有其对应的R、G、B值。例如,常见的7种颜色及其对应的R、G、B值如图2所示。对一幅彩色图像的各像素值进行变换并依变换后的新像素值重新显示,则可以实现不同的显示效果图23.1过滤技术包括锐化、浮雕、风化、腐蚀。这里介绍两种分别是锐化和浮雕。1.位图图像的锐化处理的算法如下:计算源图像像素f(i,j)的像素值与边缘上相邻像素f(i-1,j-1) 像素值之差的绝对值的百分比之和,然后将该值作为处理后图像像素g(i,j)的像素值。例如:rr=r1+0.25*abs(r1-r2)或者 0.25改为0.5也可gg=g1+0.25*abs(g1-g2)bb=b1+0.25*abs(b1-b2)式中r1,g1,b1分别为f(i,j)的红、绿、蓝分量值, r2,g2,b2分别为f(i-1,j-1)的红、绿、蓝分量值, rr,gg,bb分别为g(i,j)的红、绿、蓝分量值。2. 位图图像的浮雕处理的算法是G(i,j)= f(i,j)- f(i-1,j)+常数式中,G(i,j)为处理后图像的像素值,f(i,j)为源图像的像素值,F(i-1,j)为前一个相邻像素的值。常数一般取128。即rr=r1-r2+128gg=g1-g2+128bb=b1-b2+128式中, r1,g1,b1分别为为源图像的像素f(i,j)的红、绿、蓝分量值;r2,g2,b2分别为前一个相邻像素f(i-1,j)的红、绿、蓝分量值,rr,gg,bb分别为处理后图像的像素G(i,j)的红、绿、蓝分量值。3.2 彩色图像变换包括彩色转灰度、彩色转黑白、平滑处理、逆反处理和霓红处理。这里介绍一下彩色转灰度和逆反处理。1.彩色图像生成灰度图像的一般算法如下:Col=Picture1.Point(x,y)r= Col AND &0xffg=( Col AND &0xff00)/256b=( Col AND &0xff0000)/(256*256)rr=gg=bb=(r+g+b)/3其中Col为获取到的像素值f(i,j),r,g,b分别为原像素值f(I,j)的分量值,rr,gg,bb分别为处理后g(i,j)的分量值。2. 位图图像的逆反处理的算法如下:rr=255-rgg=255-gbb=255-b式中,r,g,b分别为源图像像素f(i,j)的红、绿、蓝分量值,rr,gg,bb分别为处理后像素g(i,j)的红、绿、蓝分量值。3.3 卷积处理卷积滤波的原理如下:y(m1- 1, m2 - 1 )= x(m1- n1 ,m2 - n2)*h(n1,n2)式中x(m1,m2)为输入图像信号,h(n1,n2)为滤波系统对单位采样序列的 (n1,n2)响应,称 滤波算子。3.4 滤波处理(1)平均值滤波(类似于柔化)平均值滤波是指在图像中以当前像素f(i,j)为中心切出一个N*M(例如3*3)像素组成的图像块,如图5-21所示的那样,设当前像素f(i,j)的灰度值为g(i,j)时,则g(i,j)= f(i,j)+ f(i-1,j-1)+ f(i,j-1)+ f(i+1,j-1)+ f(i-1,j)+ f(i+1,j) + f(i-1,j+1)+ f(i,j+1)+ f(i+1,j+1)/9 (2)最小值滤波最小值滤波是指在图像中以当前像素f(i,j)为中心切出一个N*M(例如3*3)像素组成的图像块,,设当前像素f(i,j)的灰度值为g(i,j)时,则g(i,j)取N*N个诸像素灰度值中的最小值。(3) 最大值滤波最大值滤波是指在图像中以当前像素f(i,j)为中心切出一个N*M(例如3*3)像素组成的图像块,设当前像素f(i,j)的灰度值为g(i,j)时,则g(i,j)取N*N个诸像素灰度值中的最大值。 3.5 对比度增强对比度增强处理可以使图像对比度得到拉伸,产生原图像中颜色较暗的区域更暗,较亮的区域更亮的效果。算法如下:Vpic(2)= R*RELATIVE R R R/RELATIVE R RVpic(1)= G*RELATIVE G G G/RELATIVE GG Vpic(0)= B*RELATIVE BB B/RELATIVE B B 式中,R、G、B分别为原始图像像素的红、绿、蓝分量值。RELATIVE为对比度拉伸算子。(可以改为任意值,不过一般不宜太大)数组Vpic()为输出图像像素的红、绿、蓝分量值。分别为R、G、B原始图像红、绿、蓝分量的平均值。3.6 FFT分析图像的傅立叶分析技术是图像处理的一项重要技术,它在频域内分析图像的特征。在医学领域的计算机层析技术中,傅立叶分析技术对图像的三维重建具有重要的意义。对图像进行二维FFT计算,可求得图像的振幅谱和相位谱。二维FFT算法如下:(1)求出每一行的一维FFT,并存储在中间矩阵数组内。(2)求出中间数组矩阵的每一列的FFT,得到的结果就是二维的 FFT。(3)为了显示二维图像FFT的幅值,可以求出每一个图像点的复数的幅值|H(u,v)|。并将幅值作对数变换D(u,v)= Lg(1+|H(u,v)|),最后量化成可显示的0-255之间的数值。 可写为F(k1,k2)=f(n1,n2) F(k1,k2)= f(n1,n2) 令G(n1,k2)= f(n1,n2) 则原式F(k1,k2)= G(n1,k2) 式中W1= ,W2= ,f(n1,n2)为输入图像的像素值。以上就是我选取的一些图像处理技术,这里举几例而已。第四章 系统软件设计4.1 软件设计现在我们来介绍一下整个系统的程序设计,如何通过前面提到的VB平台和Windows API函数,把图像处理技术表现出来。4.1.1 需求分析根据现在社会的需求,要得到不同的图像效果也是理所当然的。接下来,我介绍一下本软件的大致要求及其需实现的功能模块。在VB中,我们创建一些窗体。包括主窗体frmMain、工作区窗体frmPaint、工具窗体frmTool、调色板窗体frmColorcharge、历史框窗体Hstory、新建窗体frmNew、图像大小frmSize、控制窗体frmControl,其它为一些功能窗体,如对比度增强frmDuibidu,图像合成frmHecheng,FFT分析frmFFT。主窗体frmMain:是整个软件的核心,我们用作VB中唯一的MDI窗体。MDI窗体是用来包容其它窗口的中心窗口。VB规定一个应用程序只能使用一个MDI窗体,因为一个MDI窗体用到了应用程序中的所有组件及功能。因此我们用它来作程序主界面。工作区窗体frmPaint:被作为工作区,用来放置图片,进行图像处理以及其它操作。工具窗体frmTool:放置在左端,有一些常用工具可进行选择使用。调色板窗体frmColorcharge:作为调用系统颜色,选择颜色的用途。历史框窗体Hstory:作为返回工具一样,可以使图片回到前几次处理的状态,不过,次历史框只允许回到前八次操作。控制窗体frmControl:作为工具栏的辅助,在工作区上端显示当前选择的工具。新建窗体frmNew:新建一工作区域。图像大小frmSize:对图像工作区域进行设置。只对新建区域有效。那么我们在这里顺便介绍一下本软件用到的BAS模块文件。DailogAPI、GuiAPI、FFTMod、texiao、Simplepaints、PublicMod、PHMod1、PHMod2。这些模块文件都包含很多函数声明,以及很多算法都包含在其中。这些模块起到一定的声明作用,以及被其它程序调用。DailogAPI包含获取公共对话框API函数,如打开指定文件,保存指定文件等。GuiAPI包含大部分图形设备接口API函数,包括位图函数、剪切函数、颜色函数等,起到非常重要的作用。FFTMod模块包含傅利叶算法、一维FFT模块程序,被frmFFT窗体调用,进行FFT分析。texiao模块包含大部分图像处理技术的算法。被主窗体中菜单栏功能项中选择,进行图像处理。Simplepaints模块是对工具栏中的算法进行总和,工具栏中的选择项中的功能都在此模块中体现出来。PublicMod、PHMod1、PHMod2都算是公共的模块调用程序,包含公共的函数声明、公共变量和公共调用程序。以上就是我们所设计的窗体和模块集。该系统的功能主要集中在菜单栏和工具栏中,菜单栏包括以下方面选项:1. 文件:包括新建、打开、保存、关闭和退出几项。2. 编辑:包括复制、粘贴、剪切、全选、取消选择和翻转。其中翻转包括水平翻转和垂直翻转。3. 过滤:包括锐化、浮雕、腐蚀、风化。4. 滤波处理:包括最小值滤波处理、最大值滤波处理和中值处理。5. 彩色图像变换:包括彩色转灰度、彩色转黑白、平滑处理、霓红处理。6. 软化硬化:包括软化红色、软化绿色、软化橙色,硬化红色、硬化绿色、硬化蓝色。7. 卷积处理:包括水平增强、垂直增强和双向增强。8. 边缘探测:包括右下边缘抽出、拉普拉斯(8邻域)。9. 其它:包括对比度增强、FFT分析和图像合成。10. 工具窗口:包括调色板、历史框和工具栏。11. 帮助:关于软件的一些帮助信息。图3工具栏包括十个工具选择项,分别是:1. 移动 :显示的图标在工作区为箭头图标,默认情况下都为移动。2. 选择 :选择工作区中的区域,以便进行复制粘贴操作,以及区域操作。3. 放大 :放大图片,便于操作。4. 喷漆 :在指定的区域进行喷色。5. 文字 :输入文字。6. 裁剪 :剪切选中的区域。7. 画圆 :画圆形,有三种选择方式。8. 画方 :画方,有三种选择方式。9. 吸管 :拾取颜色值,表现为颜色分量RGB值。10. 渐变:简易的渐变工具。图44.1.2总体设计(概要设计)经过需求分析阶段的设计,系统必须“做什幺”已经清楚了, 接下来,将进行总体设计。在这个阶段,我们将确定系统的软件结构,如图:主窗体工作区工具栏窗体调色板窗体历史框窗体菜单栏功能项对比度窗体图像合成窗体FFT 窗体控制窗体新建窗体工作区窗体4.1.3详细设计详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统。也就是设计出程序的“蓝图”,在接下来的编码阶段里,这些描述将被直接翻译成程序设计所使用的语言。也就是说,详细设计的结果决定了最终的程序代码的质量。本设计的程序流程图:图像处理过程:打开文件输入图像图像处理输出图像保存图像工具新建图像文件图像处理保存图像文件图像大小工具YN4.1.4编码和测试编码是在对软件进行了总体设计和详细设计之后进行的,编码不过是把软件设计的结果翻译成某种程序设计语言书写的程序,因此,程序的质量基本上由设计的质量决定。但是,程序设计语言的特性和编码途径也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。在开发此软件的漫长过程中,面对错综复杂的问题,主观认识不可能完全符合客观现实,因此在系统生命周期的每个阶段都不可避免地会产生错误。我力求在每个阶段结束之前通过严格的审查,尽可能多地发现并纠正错误;但是,经验表明审查并不能发现所有差错,此外在编码过程中还不可避免地会引入新的错误。因此,在软件投入运行之前,要尽可能多地发现软件中的错误。目前系统测试仍然是保证系统质量的关键步骤。在本系统的整个测试过程中,集合了单元测试和集成测试。单元测试集中检验系统设计的最小单元模块。正式测试之前先通过编译程序检查并且改正所有语法错误,然后用详细设计描述做指南,对重要的执行通路进行测试以便发现模块内部的错误。在对子功能模块进行单元测试主要采用白盒测试法,利用一些典型的数据进行测试,尽量多的发现可能出现的错误,对于一些逻辑错误及时改正。而对功能模块进行单元测试时采用黑盒测试与白盒测试相结合的方法。把经过测试的相关的子模块联成一个大的功能模块,首先用黑盒测试的方法,进行功能测试,对产生的错误进行分析、定位,在出错的子模块中重新进行白盒测试,更正错误。当用单元测试成功测试完每个功能模块后,把所有窗体模块按设计要求放在一起结合成所要的系统进行集成测试。在集成测试中,我也同时采用黑盒测试与白盒测试相结合的方法。本软件功能基本都能实现,也有几个问题还存在疑惑。4.2 实现的关键技术在整个软件的实现过程中,归纳一下关键技术主要有以下几个方面:4.2.1转换代码如何使图像处理技术的算法转换为VB能够识别的语言,并体现出来。我们可以通过一个例子来说明。举例实现图像的浮雕。图像的浮雕处理的算法是G(i,j)= f(i,j)- f(i-1,j)+常数式中,G(i,j)为处理后图像的像素值,f(i,j)为源图像的像素值,F(i-1,j)为前一个相邻像素的值。常数一般取128。即rr=r1-r2+128gg=g1-g2+128bb=b1-b2+128式中, r1,g1,b1分别为为源图像的像素f(i,j)的红、绿、蓝分量值;r2,g2,b2分别为前一个相邻像素f(i-1,j)的红、绿、蓝分量值,rr,gg,bb分别为处理后图像的像素G(i,j)的红、绿、蓝分量值。那么我们通过VB编程语言实现它。代码如下:Public Sub EmbossPicture(Rx1%, Ry1%, Rx2%, Ry2%) With frmMain.ActiveForm ReDim r(.Buffer.Width, .Buffer.Height) ReDim g(.Buffer.Width, .Buffer.Height)ReDim B(.Buffer.Width, .Buffer.Height)BeginProcessfrmMain.PB1.max = Rx2 - Rx1For xx = Rx1 To Rx2 - 2For yy = Ry1 To Ry2 - 2r(xx, yy) = (Abs(r(xx, yy) - r(xx + 1, yy + 1) + 128)g(xx, yy) = (Abs(g(xx, yy) - g(xx + 1, yy + 1) + 128)B(xx, yy) = (Abs(B(xx, yy) - B(xx + 1, yy + 1) + 128)If frmMain.ActiveForm.SelectArea.Visible = True ThenSetPixel frmMain.ActiveForm.BufferSelected.hdc, xx, yy, RGB(r(xx, yy), g(xx, yy), B(xx, yy)ElseSetPixel frmMain.ActiveForm.Buffer.hdc, xx, yy, RGB(r(xx, yy), g(xx, yy), B(xx, yy)End IfNext yyfrmMain.PB1.Value = xx - Rx1Next xxEndProcessEnd Sub这里有几个变量,xx,yy,为坐标值,r,g,b为颜色分量值,Rx1,Rx2,Ry1,Ry2分别为图像坐标的和终点。上面的Public Sub到End Sub是一个过程。With redim 是一个一系列语句,获取原图像颜色分量值。BeginProcess到EndProcess是指进度条开始工作到结束。先获取原图像的颜色分量值。接下来看两个循环,那么它就分别对红R、绿G、蓝B三个颜色的分量指进行改变,如果工作区的选择区域为真,换句话说,你打开一个工作区,SetPixel为一个API函数,该函数将指定坐标处的像素设为指定的颜色。如果函数执行成功,那么返回值就是函数设置像素的RGB颜色值。因此我们就可以改变一幅图像的RGB值。其它算法这里不作介绍,都可以通过VB语言进行转换。4.2.2 调用API函数因为软件编程成要时不时的调用API函数,所以我们来了解一下如何调用Windows API 函数。VB应用程序要访问API函数,必须在VB应用程序中用Declare语句将API函数声明为外部过程。具体步骤操作如下:通过“工程/添加模块”在当前工程内加入一个BAS模块文件。到VB中选择菜单项中的外接程序,选择外接程序管理器中的VB 6 API Viewer执行VB程序组中的API文本浏览器,启动API函数查看工具。单击“文件|加载文本文件”命令,装入Win32api.Txt文件。添加指定的API函数到选定项框中,并将函数声明复制到剪贴板。将剪贴板中的内容粘贴到BAS模块文件中。这样,我们API函数就调入到VB程序中了。4.2.3 如何显示调色板中的多种颜色在这里我们调用一个颜色文件default.swt。调入这个文件之后,在调色板中就会出现系统默认的选择颜色项。4.2.4工具栏中工具的调用工具栏中的很多图标,可以到专门的图标下载网站去下载,下载完后就可以直接插入本软件中被调用。至于工具栏中多种算法的实现,比如选择、剪切、输入文字等。大多参考现成的代码,然后进行修改。具体代码可看后面的抓图,在这工具栏中,还存在着一点问题,待需改进。4.2.5 菜单栏的编辑在VB中创建菜单,我们可以使用工具项中的菜单编辑器。如图图5在标题中输入菜单栏上能显示的菜单名,名称里面输入英文字母,便于调用和编程。你可以添加索引和快捷键,快捷键会显示在菜单名之后。菜单里面还可以拥有自己的子菜单。例如,在文件菜单项下,你可以在创建子菜单打开文件、保存文件、退出等。在菜单编辑器中还有很多附加选项,如果需要,都可以使用。4.2.6 历史框恢复的原理历史框的原理是设置多个图片临时框,共设置九个,当第一次处理图片时,把原图片放入第一图片框。当进行第二次处理是,把第一次处理的图片放人第二图片框,依次类推。当第九次图片处理时,放第八次处理过的图片进第九个图片框。当第十次时图片处理时,第九次处理的图片会取代原图像的图片框,依次类推。简介代码如下:Dim a As Integer For a = 0 To 8 Hstory.Picture1(a).Picture = LoadPicture() Next afrmMain.ActiveForm.Buffer.Picture = Picture1(index).ImagefrmMain.ActiveForm.Buffer.Picture表示当前使用的工作的图片框。Hstory.Picture1(a)表示历史窗体中的图片框。LoadPicture()为装载图片,如果括号为空,表示不装载或者删除。4.2.7 实现两幅图像叠加形成新的图像实现两幅图像叠加成新图像,在我的毕业设计中采用了paintpicture方法。PaintPicture 方法,可以在窗体、图片框和 Printer 对象上的任何地方,绘制图形。PaintPicture 方法的语法是:object.PaintPicture pic, destX, destY, destWidth, destHeight, srcX _, srcY, srcWidth, srcHeight, Op。目标 object 指的是窗体、图片框或 Printer 对象,这些地方都是 pic 图片表现的处所。如果 object 被忽略了,则认为指定的就是当前的窗体。pic 参数必须是一个图片对象,它是由窗体或控件的 Picture 属性决定。destX 和 destY 参数,是按照 objec 的 ScaleMode,该图象将出现的水平和垂直位置。destWidth 和 destHeight 参数是可选项,用来设置在 object 目标中该图象的宽度和高度。srcX 和 src
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:VB图像处理工具设计(论文+源代码)
链接地址:https://www.renrendoc.com/paper/149910497.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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