VB 图片转灰度图

前端之家收集整理的这篇文章主要介绍了VB 图片转灰度图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Option Explicit
Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long,ByVal X As Long,ByVal Y As Long) As Long
Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long,ByVal Y As Long,ByVal crColor As Long) As Long

Function GetRValue&(ByVal rgbColor&)
    GetRValue = rgbColor And &HFF
End Function

Function GetGValue&(ByVal rgbColor&)
    GetGValue = (rgbColor And &HFF00&) / &HFF&
End Function

Function GetBValue&(ByVal rgbColor&)
    GetBValue = (rgbColor& And &HFF0000) / &HFF00&
End Function

Sub ChangePicGray(ByVal SrcDC&,ByVal nx&,ByVal ny&,Optional ByVal nMaskColor& = -1)
    Dim rgbColor&,Gray&
    Dim RValue&,GValue&,BValue&
    Dim dl&
    rgbColor = GetPixel(SrcDC,nx,ny)                              '取得一个像素的RGB值

    If rgbColor = nMaskColor Then GoTo Release
    RValue = GetRValue(rgbColor)                                    '获取R值
    GValue = GetGValue(rgbColor)                                    '获取G值
    BValue = GetBValue(rgbColor)                                    '获取B值
    Gray = (9798 * RValue + 19235 * GValue + 3735 * BValue) / 32768     '调整灰度
    rgbColor = RGB(Gray,Gray,Gray)
    Form1.Picture3.PSet (nx,ny),rgbColor                                    '绘制点
Release:
    rgbColor = 0
    Gray = 0
    RValue = 0
    GValue = 0
    BValue = 0
    dl = 0
End Sub



在验证码识别上应用较大。

彩色转为灰度度,根据一个阈值,再进行二值化,处理成黑白色。黑白色中根据黑色来判断是什么验证码。

猜你在找的VB相关文章