用 VISUAL BASIC 实现图像的锐化处理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用 VISUAL BASIC 实现图像的锐化处理.doc

用 Visual Basic 实现图像的锐化处理 谭阳,裴亮 辽宁工程技术大学测绘与地理科学学院,辽宁阜新(123000) E-mail:sunnycclucky@163.com 摘 要:本文介绍了一种实现图像锐化增强处理的原理,并在 Visual Basic 编程环境中实现。 关键词:图像;锐化;Visual Basic 1. 引 言 空间增强是有目的的突出图像上的某些特征,如突出边缘或线形地物;也可以有目的的 去除某些特性,如抑制图像上在获取和传输过程中所产生的各种噪声。空间增强的目的性很 强,处理后的图像从整体上看可能与原图像差异很大,但却突出了需要的信息或削弱了不需 要的信息,从而达到了增强的目的[1]。 为了突出边缘和轮廓,线状目标信息,可以采用锐化的方法。锐化可使图像上边缘与线 性目标的反差提高,因此也称为边缘增强。在本文中我将介绍一下对图像进行平滑和锐化的 原理,以及在 Visual Basic 中的实现。在 Visual Basic 中提供了较强的图形和图像的处理功 能,VB 通过使用颜色来进行对图像的处理,它可以获取像素的颜色,也可用颜色在窗体上 画点,对图像进行锐化处理的原理主要是从图像上获取某一像素的颜色,再对颜色进行模板 和卷积操作从而达到锐化的效果[2]。 2. 卷积运算 卷积运算是在空间域上对图像进行临域检测的运算。选定一个卷积函数,又称为“模板” 实际上是一个 M×N 的小图像,例如 3×3,5×7,7×7 等。图像的卷积运算是运用模板来实现 的[1]。 模板运算的方法是选定运算模板,其大小为 M×N。从图像的左上角开始,在图像上开 一个与模板同样大小的活动窗口 f(m,n),使图像窗口与模板像元的灰度值对应相乘再相加。 计算结果 g(i,j)作为窗口中心像元的新的灰度值。模板运算的公式为 M m?1  N n?1 3. 图像平滑和锐化的原理 3.1 常用的锐化模板 锐化滤波通过增强高频成分减少图像的模糊,因此又被称为高通滤波。微分求导运算即 为一种高通滤波,它只记录图像的变化,而不保留图像的能量,在一般的增强应用中,锐化 滤波可以通过组合微分滤波器和原图像得到。常用的微分算子是拉普斯算子,它是一个二维 二阶微分算子,而且无方向性,定义为: 2 ? 2 f ( x, y) ?x 2  ? ? 2 f ( x, y) ?y 2 3?? 3的拉普斯卷积模板为: -1- -1 -1 -1  -1 -1 9 -1 -1 -1 它相当于将原图像减去拉普斯运算的结果。应当注意的是锐化处理在增强图像边缘效果的同 时势必同时增加了图像的噪声。 3.2 颜色的获取和设置 获得图像上某一点的颜色值,可以用 Private Declare Function Getpixel Lib ”gdi320” Alias”Getpixel” (ByVal hdc As Long , ByVal X As Long , By Val Y As Long ) As Long 其中 hdc 是指对象的设备上下文,对象是放图像的 Picture 控件(不能是 Image 控件)。X, Y 是需获得颜色的点的位置。 用指定的颜色在窗体或图片框中画点,可以用 API 函数 SetPixel 函数,它的函数原型为 Private Declare Function Set pixel Lib ”gdi320” Alias ”SetPixel”(By Val hdc As Long, By Val hdc X As Long, By Val y As Long, By, Val crColor As long) As Long 其中 hdc,X,Y 参数与 GetPixel 函数中的相同,crColor 画点所需的颜色。在使用这两 个函数之前,在窗体的公共声明部分要声明[3]。 4. 图像在 Visual Basic 中的实现 4.1 定义锐化函数 锐化函数可以在模块中的公共声明部分定义,并且为了存储模板矩阵定义一个数据类型 Matrix(矩阵)。 Public Type matrix Items (-1To1,-1To1) As Integer End Type 再在模块中定义三个函数,Getrvalue,Getgvalue,Getbvalue,分别用于获得某颜色的 RGB 三个颜色分量。 Public Function getrvalue (color As Long) As Integer Getrvalur = color Mod 256 ‘获取颜色值的红色分量 End Function Public Function getgvalue (colorAsLong) As Integer Getgvalu

文档评论(0)

mwap + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档