作用:
- 进行处理时比自带二值化快
- 去除无关背景干扰让识别更加准确
- 去除字体阴影干扰让识别更加准确
处理前后效果对比:处理前: 处理1:处理后2:源码下载(含中文注释):'处理1第三参数"FF7D54-151515|666666-202020"
'处理2第三参数"FF7D54-151515|666666-202020|FFFFFF-000000"
保留图片指定颜色 "/sdcard/Pictures/1.png","/sdcard/Pictures/4.png","FF7D54-151515|666666-202020"'参数1:读取的图片路径 参数2:保存的图片路径 参数3:保留颜色-偏色
Sub 保留图片指定颜色(读取路径, 保存路径, 保留颜色)
Dim 分割颜色,分割特征,颜色,偏色
Dim r,g,b
Dim r1,r2,g1,g2,b1,b2
Dim 图像数据 =Image.GetPicData(读取路径)'读取图片数据1
Dim 暂存数据 =Image.GetPicData(读取路径)'读取图片数据2
Dim 图片宽高=Image.Size(读取路径)'读取图片宽高
Dim 宽=图片宽高[1]
Dim 高=图片宽高[2]
For i = 1 To 宽
For j = 1 To 高
暂存数据
[j][3] = 255'将数据2存为纯白图片数据
暂存数据[j][2] = 255
暂存数据[j][1] = 255
Next
Next
分割颜色 = Split(保留颜色, "|")'分割保留颜色
For nj = 0 To UBOUND(分割颜色)'循环判断保留颜色
分割特征 = Split(分割颜色(nj), "-")
颜色 = 分割特征(0)
偏色 = 分割特征(1)
TracePrint 颜色,偏色
ColorToRGB(颜色, R, G, B)'将本次保留颜色分解成rgb
TracePrint R, G, B
r1 = R + Mid(偏色, 1, 2) / 1'通过设置的偏色计算出rgb分别支持的波动范围
r2 = R - Mid(偏色, 1, 2) / 1
g1 =G + Mid(偏色, 3, 2) / 1
g2 =G - Mid(偏色, 3, 2) / 1
b1 =b + Mid(偏色, 5, 2) / 1
b2 = b - Mid(偏色, 5, 2) / 1
TracePrint R1,R2, G1, G2,B1,B2
For i = 1 To 宽'循环数据1
For j = 1 To 高
If 图像数据[j][3]/1 <= r1 And 图像数据[j][3]/1 >= r2 and 图像数据[j][2]/1 <= g1 And 图像数据[j][2]/1 >= g2 and 图像数据[j][1]/1 <= b1 And 图像数据[j][1]/1 >= b2 Then '将数据1符合颜色-偏色的数据写入纯白的数据2内
暂存数据[j][3] = 0
暂存数据[j][2] =0
暂存数据[j][1] = 0
End If
Next
Next
Next
Image.SavePixelData 暂存数据, 保存路径'将数据库存储微图片
图像数据 = Null'释放
暂存数据= Null'释放
End Sub