VB 图片转灰度图

前端之家收集整理的这篇文章主要介绍了VB 图片转灰度图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. Option Explicit
  2. Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long,ByVal X As Long,ByVal Y As Long) As Long
  3. Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long,ByVal Y As Long,ByVal crColor As Long) As Long
  4.  
  5. Function GetRValue&(ByVal rgbColor&)
  6. GetRValue = rgbColor And &HFF
  7. End Function
  8.  
  9. Function GetGValue&(ByVal rgbColor&)
  10. GetGValue = (rgbColor And &HFF00&) / &HFF&
  11. End Function
  12.  
  13. Function GetBValue&(ByVal rgbColor&)
  14. GetBValue = (rgbColor& And &HFF0000) / &HFF00&
  15. End Function
  16.  
  17. Sub ChangePicGray(ByVal SrcDC&,ByVal nx&,ByVal ny&,Optional ByVal nMaskColor& = -1)
  18. Dim rgbColor&,Gray&
  19. Dim RValue&,GValue&,BValue&
  20. Dim dl&
  21. rgbColor = GetPixel(SrcDC,nx,ny) '取得一个像素的RGB值
  22.  
  23. If rgbColor = nMaskColor Then GoTo Release
  24. RValue = GetRValue(rgbColor) '获取R
  25. GValue = GetGValue(rgbColor) '获取G值
  26. BValue = GetBValue(rgbColor) '获取B
  27. Gray = (9798 * RValue + 19235 * GValue + 3735 * BValue) / 32768 '调整灰度
  28. rgbColor = RGB(Gray,Gray,Gray)
  29. Form1.Picture3.PSet (nx,ny),rgbColor '绘制点
  30. Release:
  31. rgbColor = 0
  32. Gray = 0
  33. RValue = 0
  34. GValue = 0
  35. BValue = 0
  36. dl = 0
  37. End Sub



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

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

猜你在找的VB相关文章