prrsw的个人博客分享 http://blog.sciencenet.cn/u/prrsw

博文

Visual Basic与图像处理10

已有 2882 次阅读 2012-10-11 07:56 |系统分类:教学心得|关键词:学者| Visual, Basic与图像处理

Visual Basic与图像处理(二)

7、灰度窗口变换

灰度窗口变换是选择窗口中部分灰度等级的一种点运算方式,其实现方法与阈值变换类似。选择一定的灰度等级范围,在该范围内的灰度值保持不变,小于该范围下限的灰度值设置为0(黑色),而大于该范围上限的灰度值设置为255(白色)。灰度窗口变换可以用下面的函数形式进行表达:

这里的L表示窗口范围的下限,H表示窗口范围的上限。

灰度窗口变换的在平时用途较为广泛,比如利用灰度窗口变换可以消除较暗或者较亮的背景,在软件设计时,该例与阈值变换非常相似,同样由两个PictureBox组成,另外在窗口中放置了两个文本框,分别用于存放窗口范围的下限和上限。本例的运行界面如下图所示:

窗口变换按钮对应的代码如下:

Private Sub cmdWindowTrans_Click()

    Dim i As Integer, j As Integer

    Dim PixelValue As Long

    Dim r As Integer, g As Integer, b As Integer

    Dim GrayValue As Integer

    Dim NGrayValue As Integer

    Dim L As Integer, H As Integer

   

    ThresholdValue = Val(txtThreshold)

    '设置目标图像的高度和宽度

    DestImHeight = SourceImHeight

    DestImWidth = SourceImWidth

   

    '设置目标PictureBox的大小

    PicDest.Height = DestImHeight

    PicDest.Width = DestImWidth

   

    L = Val(txtL)

    H = Val(txtH)

   

    '图像的窗口变换

    For i = 0 To SourceImHeight - 1

        For j = 0 To SourceImWidth - 1

               PixelValue = PicSource.Point(j, i)

               r = PixelValue Mod 256

               g = (PixelValue 256) Mod 256

               b = PixelValue 65536

              '插入图像处理的过程,对r, g, b进行处理

               GrayValue = 0.3 * r + 0.59 * g + 0.11 * b

              

               If GrayValue < L Then

                    NGrayValue = 0

               ElseIf GrayValue > H Then

                    NGrayValue = 255

               Else

                    NGrayValue = GrayValue

               End If

              

               PicDest.PSet (j, i), RGB(NGrayValue, NGrayValue, NGrayValue)

        Next j

    Next i

End Sub



https://m.sciencenet.cn/blog-648901-621304.html

上一篇:Visual Basic与图像处理9
下一篇:Visual Basic与图像处理11

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 01:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部