1. 定义常量 ParaGrayLevel = 200
  2. 定义常量 RedOfRGB = 1
  3. 定义常量 GreenOfRGB = 2
  4. 定义常量 BlueOfRGB = 3
  5. 定义变量 GraphicArray(1000,1000)
  6. 定义变量 GrayArray(1000,1000)
  7. 注释:图片特征数组: GraphicArray放的颜色串字符;
  8. 注释: GrayArray 放的二值化数字
  9. 注释:定义图形矩形左上角和右下角坐标
  10. 定义变量 RectangleBegin, RectangleEnd
  11. 令 RectangleBegin = "315,108"
  12. 令 RectangleEnd = "430,132"
  13. 定义变量 MyArray, x1, y1, x2, y2
  14. 令 MyArray = split(RectangleBegin,",")
  15. 令 x1 = CInt(MyArray(0))
  16. 令 y1 = CInt(MyArray(1))
  17. 令 MyArray = split(RectangleEnd,",")
  18. 令 x2 = CInt(MyArray(0))
  19. 令 y2 = CInt(MyArray(1))
  20. 调用 GetGraphic(RectangleBegin,RectangleEnd,ParaGrayLevel)
  21. 定义变量 Str
  22. 令 Str = ""
  23. 循环 y 从 y1 到 y2
  24.     循环 x 从 x1 到 x2
  25.         令 Str = Str & GrayArray(x,y)
  26.     循环结束
  27.     令 Str = Str & vbCrlf
  28. 循环结束
  29. 弹出窗口 Str
  30. 子程序 GetGraphic(RectangleBegin,RectangleEnd,GrayLevel)
  31.     注释:制作人员:xxchuchu
  32.     注释:制作时间:2011.01.10
  33.     注释:功能说明:返回指定矩形[左上角和右下角坐标定义此矩形]范围的颜色字符数组
  34.     注释:这里直接对全局数组变量GraphicArray进行赋值
  35.     注释:参数说明:
  36.     注释:GetGraphic 返回值, 格式:nnn 数字型
  37.     注释:RectangleBegin 矩形左上角坐标, 格式:X,Y 字符型
  38.     注释:RectangleEnd 矩形右下角坐标, 格式:X,Y 字符型
  39.     定义变量 MyArray, x1, y1, x2, y2
  40.     令 MyArray = split(RectangleBegin,",")
  41.     令 x1 = CInt(MyArray(0))
  42.     令 y1 = CInt(MyArray(1))
  43.     令 MyArray = split(RectangleEnd,",")
  44.     令 x2 = CInt(MyArray(0))
  45.     令 y2 = CInt(MyArray(1))
  46.     循环 y 从 y1 到 y2
  47.         循环 x 从 x1 到 x2
  48.             令 GraphicArray(x,y) = 得到指定点 (x, y) 的颜色
  49.             令 GrayArray(x,y) = PartNumOfRGB(GraphicArray(x,y),RedOfRGB)
  50.             令 GrayArray(x,y) = Binarization(GrayArray(x,y),ParaGrayLevel)
  51.         循环结束
  52.     循环结束
  53. 子程序结束
  54. 函数 ConvertGraphicToNum
  55. 函数结束
  56. 函数 Binarization(ParaNum,GrayLevel)
  57.     注释:制作人员:xxchuchu
  58.     注释:制作时间:2011.01.10
  59.     注释:功能说明:二值化,返回输入数字 ParaNum 的 经过灰色计算后的值0或1
  60.     注释:参数说明:
  61.     注释:Binarization 返回值, 格式:n 数字型, n = 0,1
  62.     注释:ParaNum 10进制数字, 格式:nnnnn 数字型
  63.     注释:GrayLevel 灰度,格式:nnn 数字型,n = 0-999
  64.     如果 ParaNum < GrayLevel 则
  65.         令 Binarization = 1
  66.     否则
  67.         令 Binarization = 0
  68.     条件结束
  69.     标记 EndOfFunc(函数 Binarization)
  70. 函数结束
  71. 函数 PartNumOfRGB(sColor,PartOfRGB)
  72.     注释:制作人员:xxchuchu
  73.     注释:制作时间:2011.01.10
  74.     注释:功能说明:返回颜色字符串 sColor 的 PartOfRGB 部分RGB( Red, Green, Blue )
  75.     注释:参数说明:
  76.     注释:PartNumOfRGB 返回值, 格式:nnn 数字型
  77.     注释:sColor 16进制6位数颜色字符串, 格式:xxxxxx 字符型,x=0-9,A-F
  78.     注释:PartOfRGB 颜色串中需要取值的部分,格式:n 数字型,n = 1,2,3
  79.     定义变量 MyByte
  80.     定义变量 i, NumOfPart
  81.     注释:先将16进制数转换成10进制数
  82.     令 NumOfPart = 0
  83.     循环 i 从 1 到 6
  84.         令 MyByte = Mid(sColor,i,1)
  85.         根据 MyByte 选择
  86.         情况 "A":
  87.             令 NumOfPart = (NumOfPart + 10) * 16
  88.         情况 "B":
  89.             令 NumOfPart = (NumOfPart + 11) * 16
  90.         情况 "C":
  91.             令 NumOfPart = (NumOfPart + 12) * 16
  92.         情况 "D":
  93.             令 NumOfPart = (NumOfPart + 13) * 16
  94.         情况 "E":
  95.             令 NumOfPart = (NumOfPart + 14) * 16
  96.         情况 "F":
  97.             令 NumOfPart = (NumOfPart + 15) * 16
  98.         情况 :
  99.             令 NumOfPart = (NumOfPart + CInt(MyByte)) * 16
  100.         选择结束