毕业论文.doc

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

收藏

资源目录
跳过导航链接。
JSJ06-191@VB图像处理工具设计(论文+源代码).zip
JSJ06-191@VB图像处理工具设计(论文+源代码)
图像处理工具
毕业论文.doc---(点击预览)
毕业设计源码
cursors
examples
icon
images
swatches
temp
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
压缩包内文档预览:(预览前20页/共24页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:508447    类型:共享资源    大小:1.18MB    格式:ZIP    上传时间:2015-11-10 上传人:QQ28****1120 IP属地:辽宁
12
积分
关 键 词:
毕业设计论文
资源描述:
JSJ06-191@VB图像处理工具设计(论文+源代码),毕业设计论文
内容简介:
浙江师范大学 本科毕业设计 (论文 ) ( 2004 届 ) 设计题目 基于 VB 的数字图像 处理技术的开发与研究 计算机科学与工程学院 专业 计算机科学与技术 计本 001班 学号 44号 奚永旺 徐慧英(讲师) 2004.4.20 设计成绩作者姓名学院 班级 指导老师 完稿时间nts浙师大计算机科学与工程学院毕业设计 附录 目 录 摘要 引言 第一章 系统的概述 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 历史框恢复的原理 1 2 2 2 3 4 5 5 6 7 8 9 9 9 9 9 9 10 10 11 11 11 14 15 15 16 16 18 18 18 18 21 nts浙师大信息科学与 工程学院毕业设计 附录 4.2.7 实现两幅图像叠加成新图像 4.3 常见问题及回答 结束语 参考文献 附录 外文翻译 1 外文翻译 2 学术论文 基于 VB的数字图像处理技术的开发与研究 浙江师范大学信息科学与工程学院 计本 001班 奚永旺 指导教师 徐慧英(讲师) 摘要: 本文首先介绍数字图像处理技术的背景和意义,然后介绍基 于 VB 的所完成的图像处理应用软件,具体介绍该软件的功能、结构及简单操作。接着介绍一下 VB 和 Windows 的 API 函数,最后着重介绍软件中一些图像处理技术,关键技术讲解利用 VB 中的 API 函数,并通过 VB 编程语言如何进行图像处理的实现,介绍在这个设计过程中碰到的难题及解决方法。 关键词 : Visual Basic、 API、图像处理、 FFT According to the VB arithmetic figure picture handles technical development and research Abstract: 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 nts浙师大信息科学与 工程学院毕业设计 附录 引 言 随着科学技术的不断发展,计算机的更新速度不断提高,人们的思想文化素质的提高,对图像的要求也越来越高。因此把原始图像与计算机结合起来,从而创作出许多更加完美的图像,满足人们的需求。计算机图像处理,是指利用计算机对图像进行一系列加工,以便获得人们所需要的效果。 图像是人类获取和交换信息的主要来源,人类感知外界信息, 80%以上是通过视觉得到的。因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。图像处理或图像分析方法的应用越来越广泛,其主要理论基础是形态数学,立体学,集合论等。图像处理或图像分析方法的 应用越来越广泛,其主要理论基础是形态数学,立体学,集合论等。图像处理的应用领域很广,大致可以分为六大领域以及十余个子领域:材料科学:光学材料 ,金属材料 ,晶体材料 ,陶瓷建筑材料。 地学:岩矿结构 ,岩体裂隙特征 ,土体颗粒。 生命科学:生物 ,植物 ,医学 ,基因。 地理学:经济地理 ,土地资源 ,地貌 ,气象学。 机器人 : 包括电路设计,识别等。 鉴定:指纹鉴定 ,财务印章管理 ,防伪鉴定等。 图像处理虽然也可以用光学方法或模拟技术来实现,但目前主要是利用计算机来实现,称为数字图像处理。因此,图像处理一般是指数字图像处理。 常 见的图像处理有图像数字化、图像编码、图像增强、图像复原、图像分割与图像分析等。经过处理后的图像,一定能够更好的被用于工业或者个人目的。为此开发这个数字图像处理软件,能够处理一些图像,并对图像处理技术此方面进行深入的研究。 第一章 软件系统的概述 因在本章节中,我们将对基于 VB 图像处理软件进行分析。给出它的主体界面,能实现的功能以及系统的简单操作。 1.1系统的主体界面 由于现在关于图像处理的应用软件很多,优秀的有 Adobe 公司的 Photoshop、nts浙师大信息科学与 工程学院毕业设计 附录 Macromedia 公司的 Fireworks 等,它们的版本不断在更 新,功能也在不断的提高。本应用软件就参照图像处理软件新视觉的主体界面。本软件的主体界面如下: 包括主界面、工作区、工具栏、调色板、历史框。如图 1 1.2系统的功能 该系统的功能主要集中在菜单栏和工具栏中,菜单栏中所体现的都是处理图像的功能。包括以下方面: 1.新建一幅图像,或者打开、保存、关闭和退出等功能。 2.对图像进行复制、粘贴、剪切、全选、取消选择和翻转。其中翻转包括水平翻转和垂直翻转。 3.过滤图像,包括锐化、浮雕、腐蚀、风化。 4 对图像进行滤波处理:包括 最小值滤波处理、最大值滤波处理和中值处理。 图 1 nts浙师大信息科学与 工程学院毕业设计 附录 5.对彩色图像进行变换:包括彩色转灰度、彩色转黑白、平滑处理、霓红处理。 6.软化图像,包括红色、绿色、橙色;硬化图像,包括红色、绿色、蓝色。 7.对图像进行卷积处理,包括水平增强、垂直增强和双向增强。 8.对图像进行边缘探测,例如右下边缘抽出,拉普拉斯( 8 邻域)。 9.给图像进行对比度增强,进行 FFT 分析,以及对两幅图像进行合成。 工具栏中的功能主要体现在工具中,正如平时画图工具的工具一样,可以选择一定的区域,放大图像、画圆、画方,输入文字、剪切一定的区域,简单 的渐变等。 1.3 系统简单操作 举两个简单的例子: 其一,我们要处理一幅图片,要想得到一个浮雕的效果。那么,首先在文件菜单项中选择打开文件,到指定的目录下选择你需要处理的图片,打开之后,在菜单栏中的过滤选项中选择浮雕,那么软件就执行相应的操作,进行图像处理。处理完后,如果不需要其它操作,就可以在文件菜单项中选择保存项,保存到你指定的目录下。 其二,我们要自己建一幅自己的图片。选择菜单栏中文件下的新建,然后在工作区,选择工具条的多种工具,可以画圆,也可以画放方,剪切一定的区域,进行 简单的渐变色,输入文字等,然后保存即可。 处理前 处理后 nts浙师大信息科学与 工程学院毕业设计 附录 第二章 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. 事件驱动的程序机制 nts浙师大信息科学与 工程学院毕业设计 附录 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 不但可以 开发出在各种平台上都能成功运行的应用程序,nts浙师大信息科学与 工程学院毕业设计 附录 而且也可以充分利用每个平台特有的功能和属性。 在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在 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 位平台的强大功能和灵活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。 nts浙师大信息科学与 工程学院毕业设计 附录 第三章 图像处理技术 基本图像处理技术 图像的颜色是由三种基本颜色,即红( R)、 绿 (G)、蓝 (B)有机组合而成的,称为三基色。每种基色可取 0 到 255 的值,因此由三基色可组合成( 256*256*256)1677 万种颜色,每种颜色都有其对应的 R、 G、 B 值。例如,常见的 7 种颜色及其对应的 R、 G、 B 值如图 2 所示。 对一幅彩色图像的各像素值进行变换并依变换后的新像素值重新显示,则可以实现不同的显示效果 3.1 过滤技术 包括锐化、浮雕、风化、腐蚀。这里介绍两种分别是锐化和浮雕。 1.位图图像的锐化处理的算法如下: 计算源图像像素 f(i,j)的像素值与边缘上相邻像 素 f(i-1,j-1) 像素值之差的绝对值的百分比之和,然后将该值作为处理后图像像素 g(i,j)的像素值。例如 : 图 2 nts浙师大信息科学与 工程学院毕业设计 附录 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+128 gg=g1-g2+128 bb=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 &0xff g=( Col AND &0xff00)/256 b=( 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-r gg=255-g bb=255-b 式中, r,g,b 分别为源图像像素 f(i,j)的红、绿、蓝分量值 ,rr,gg,bb 分别为处理后像素 g(i,j)的红、绿、蓝分量值。 nts浙师大信息科学与 工程学院毕业设计 附录 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 R Vpic(1)= G*RELATIVE G G G/RELATIVE G G Vpic(0)= B*RELATIVE BB B/RELATIVE B B 式中, R、 G、 B 分别为原始图像像素的红、绿、蓝分量值。 RELATIVE 为对比度拉伸算子。(可以改为任意值,不过一般不宜太大)数组 Vpic()为输出图像像素的红、绿、蓝分量值。分别为 R、 G、 B原始图像红、绿、蓝分量的平均值。 nts浙师大信息科学与 工程学院毕业设计 附录 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)= 12021101NnNnf(n1,n2) 111 knW 222 knW F(k1,k2)= f(n1,n2) 222 knW 111 knW 令 G(n1,k2)= f(n1,n2) 222 knW 则原式 F(k1,k2)= G(n1,k2) 111 knW 式中 W1= 1/2 nje ,W2= 2/2 nje ,f(n1,n2)为输入图像的像素值。 以上就是我选取的一些图像处理技术,这里举几例而已 。 第四章 系统软件设计 4.1 软件设计 现在我们来介绍一下整个系统的程序设计,如何通过前面提到的 VB平台和Windows API函数,把图像处理技术表现出来。 4.1.1 需求分析 根据现在社会的需求,要得到不同的图像效果也是理所当然的。接下来,我介绍一下本软件的大致要求及其需实现的功能模块。 在 VB 中,我们创建一些窗体。 包括主窗体 frmMain、工作区窗体 frmPaint、工具窗体 frmTool、调色板窗体 frmColorcharge、历史框窗体 Hstory、新建窗体nts浙师大信息科学与 工程学院毕业设计 附录 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 模块是对工具栏中的算法进行总和,工具栏中的选择项中的功能都在此模块中体现出来。 nts浙师大信息科学与 工程学院毕业设计 附录 PublicMod、 PHMod1、 PHMod2 都算是公共的模块调用程序,包含公共的函数声明、公共变量和公共调用程序。 以上就是我们所设计的窗体和模块集。 该系统的功能主要集中在菜单栏和工具栏中,菜单栏包括以下方面选项: 1. 文件:包括新建、打开、保存、关闭和退出几项。 2. 编辑:包括复制、粘贴、剪切、全选、取消选择和翻转。其中翻转包括水平翻转和垂直翻 转。 3. 过滤:包括锐化、浮雕、腐蚀、风化。 4. 滤波处理:包括最小值滤波处理、最大值滤波处理和中值处理。 5. 彩色图像变换:包括彩色转灰度、彩色转黑白、平滑处理、霓红处理。 6. 软化硬化:包括软化红色、软化绿色、软化橙色,硬化红色、硬化绿色、硬化蓝色。 7. 卷积处理:包括水平增强、垂直增强和双向增强。 8. 边缘探测:包括右下边缘抽出、拉普拉斯( 8 邻域)。 9. 其它:包括对比度增强、 FFT 分析和图像合成。 10. 工具窗口:包括调色板、历史框和工具栏。 11. 帮助: 关于软件的一些帮助信息。 工具栏包括十个工具选择项,分别是: 1. 移动 :显示的图标在工作区为箭头图标,默认情况下都为移动。 2. 选择 :选择工作区中的区域,以便进行复制粘贴操作,以及区域操作。 3. 放大 :放大图片,便于操作。 4. 喷漆 :在指定的区域进行喷色。 5. 文字 :输入文字。 6. 裁剪 :剪切选中的区域。 7. 画圆 :画圆形,有三种选择方式。 图 3 nts浙师大信息科学与 工程学院毕业设计 附录 8. 画方 :画方,有三种选择方式。 9. 吸管 :拾取颜色值,表现为颜色分量 RGB 值。 10. 渐变:简易的渐变工具。 4.1.2 总体设 计(概要设计) 经过需求分析阶段的设计,系统必须“做什幺”已经清楚了, 接下来,将进行总体设计。在这个阶段,我们将确定系统的软件结构,如图: 菜单栏 功能项 对比度窗 体 图像合成窗体 FFT 窗体 主窗体 工作区 工具栏窗体 调色板窗体 历史框窗体 控制窗体 新建窗体 工作区窗体 图 4 nts浙师大信息科学与 工程学院毕业设计 附录 4.1.3 详细设计 详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统。也就是设计出程序的“蓝图”,在接下来的编码阶段里,这些描述将被直接翻译成程序设计所使用的语言。也就是说,详细设计的结果决定了最终的程序代码的质量。 本设计的程序流程图: 图像处理过程: 4.1.4 编码和测试 编码是在对软件进行了总体设计和详细设计之后进行的,编码不过是把软件设计的结果翻译成某种程序设计语言书写的程序,因此,程序的质量基本上由设计的质量决定。但是,程序设计语言的特性和编码途径也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。 在开发此软件的漫长过程中,面对错综复杂的问题,主观认识不可能完全符新建图像文件 图像处理 保存图像文件 图像大小 工具 Y N 打开文件 输入图像 图像处理 输出图像 保存图像 工具 nts浙师大信息科学与 工程学院毕业设计 附录 合客观现实,因此在系统生命周期的每个阶段都不可避免地会产生错误。我力求在每个阶段结束之前通过严格的审查,尽可能多地发现并纠正错误;但是,经验表明审查并不能发现所有差错,此外在编码过程中还不可避免地 会引入新的错误。因此,在软件投入运行之前,要尽可能多地发现软件中的错误。目前系统测试仍然是保证系统质量的关键步骤。 在本系统的整个测试过程中,集合了单元测试和集成测试。 单元测试集中检验系统设计的最小单元 模块。正式测试之前先通过编译程序检查并且改正所有语法错误,然后用详细设计描述做指南,对重要的执行通路进行测试以便发现模块内部的错误。在对子功能模块进行单元测试主要采用白盒测试法,利用一些典型的数据进行测试,尽量多的发现可能出现的错误,对于一些逻辑错误及时改正。而对功能模块进行单元测试时采用黑盒测试与白盒 测试相结合的方法。把经过测试的相关的子模块联成一个大的功能模块,首先用黑盒测试的方法,进行功能测试,对产生的错误进行分析、定位,在出错的子模块中重新进行白盒测试,更正错误。 当用单元测试成功测试完每个功能模块后,把所有窗体模块按设计要求放在一起结合成所要的系统进行集成测试。在集成测试中,我也同时采用黑盒测试与白盒测试相结合的方法。 本软件功能基本都能实现,也有几个问题还存在疑惑。 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+128 gg=g1-g2+128 bb=b1-b2+128 nts浙师大信息科学与 工程学院毕业设计 附录 式中, 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) BeginProcess frmMain.PB1.max = Rx2 - Rx1 For xx = Rx1 To Rx2 - 2 For yy = Ry1 To Ry2 - 2 r(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 Then SetPixel frmMain.ActiveForm.BufferSelected.hdc, xx, yy, RGB(r(xx, yy), g(xx, yy), B(xx, yy) Else SetPixel frmMain.ActiveForm.Buffer.hdc, xx, yy, RGB(r(xx, yy), g(xx, yy), B(xx, yy) End If Next yy frmMain.PB1.Value = xx - Rx1 Next xx EndProcess End Sub 这里有几个变量, xx,yy,为坐标值, r,g,b 为颜色分量值, Rx1,Rx2,Ry1,Ry2分别为图像坐标的和终点。上面的 Public Sub 到 End Sub 是一个过程。 With redim nts浙师大信息科学与 工程学院毕业设计 附录 是一个一系列语句,获取原图像颜色分量值。 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中创建菜单,我们可以使用工具项中的菜单编辑器。如图 nts浙师大信息科学与 工程学院毕业设计 附录 在标题中输入菜单栏上能显示的菜单名,名 称里面输入英文字母,便于调用和编程。你可以添加索引和快捷键,快捷键会显示在菜单名之后。菜单里面还可以拥有自己的子菜单。例如,在文件菜单项下,你可以在创建子菜单打开文件、保存文件、退出等。在菜单编辑器中还有很多附加选项,如果需要,都可以使用。 4.2.6 历史框恢复的原理 历史框的原理是设置多个图片临时框,共设置九个,当第一次处理图片时,把原图片放入第一图片框。当进行第二次处理是,把第一次处理的图片放人第二图片框,依次类推。当第九次图片处理时,放第八次处理过的图片进第九个图片框。当第十次时图片处理时,第九次处 理的图片会取代原图像的图片框,依次类推。简介代码如下: Dim a As Integer For a = 0 To 8 Hstory.Picture1(a).Picture = LoadPicture() Next a frmMain.ActiveForm.Buffer.Picture = Picture1(index).Image frmMain.ActiveForm.Buffer.Picture 表示当前使用的工作的图片框。Hstory.Picture1(a)表示历史窗体中的图片 框。 LoadPicture()为装载图片,如果括号为空,表示不装载或者删除。 图 5 nts浙师大信息科学与 工程学院毕业设计 附录 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 和 srcY 参数是可选项,用来定
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:JSJ06-191@VB图像处理工具设计(论文+源代码)
链接地址:https://www.renrendoc.com/p-508447.html

官方联系方式

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

网站客服QQ:2881952447     

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

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

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