VB 图片转灰度图
发布时间:2020-12-17 08:16:44 所属栏目:百科 来源:网络整理
导读:Option ExplicitDeclare Function GetPixel Lib "gdi32" (ByVal hdc As Long,ByVal X As Long,ByVal Y As Long) As LongDeclare Function SetPixelV Lib "gdi32" (ByVal hdc As Long,ByVal Y As Long,ByVal crColor As Long) As LongFunction GetRValue(ByVa
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
在验证码识别上应用较大。 彩色转为灰度度,根据一个阈值,再进行二值化,处理成黑白色。黑白色中根据黑色来判断是什么验证码。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
