- 版主
- 23805
- 4121
- 37
- 514 朵
- 2040 个
- 1206 个
- 138500
- 2004-08-11
|
1#
t
T
发表于 2022-02-12 16:24
|
|只看楼主
一个简单的数字识别演示,通过图灵识别插件进行脚本训练
热心作者:火(QQ:1576449314)
一、前期预研 1、加载图片 打开图灵字库工具并导入我们需要的素材!(加载图片>选择自己的素材目录并导入)。
[attachimg]252178[/attachimg] [attachimg]252182[/attachimg] 还有一种简单的加载图片做法:就是直接多选图片,拖进字库工具中间里。2、滤镜处理步骤1:先把我们需要的部分切割出来(滤镜处理>>>延伸裁剪)。 步骤2:二值化处理。二值化根据具体情况自行调整(我测试过的所以直接填写)。鼠标点一下图片中心,操作鼠标滚轮即可放大缩小图像。 3、字符切割没有合并在一起的话 就说明我们的二值化弄的非常优先。4、生成代码随便定义一个数字,然后生成代码。二、开始训练1、创建字库步骤1:因为我们识别库是空的,所以我们在c盘创建一个识别文件。我就用默认的"C:\识别库.lib"。步骤2:先测试一下效果,因为我们识别库是空的,所以啥都不会识别到。2、预览图像修改下代码,每次识别的时候预览下二值化。3、添加字库思路说明:先识别图片,判断识别结果的数量跟我们二值化切割的数量有没有一样,一样则正常,不一样则错误然后纠正写入字库。 需要用到以下几条命令:显示输入框: Plugin.TURING.UI_InputBox字符切割数据: Plugin.TURING.Lib_OneCharData()储存识别字库: Plugin.TURING.Lib_Save 步骤1:继续编写并修改代码。 步骤2:再识别一次。这么识别不到呢?我们下面的字库路径没定义,重新定义下就完美解决。步骤3:然后重新填写识别的数字。步骤4:再识别一次,看看结果~步骤5:奈斯,到了这一步我们就改成子程序。到了这一步说明我们改成子程序可以正常识别,然后准备开始我们的批量识别训练字库吧~4、批量制作需要用到“遍历目录下所有文件”命令:Plugin.TURING.Files_Search 。 步骤1:开始我们的批量识别训练字库吧~步骤2:出错了,我们就弄了7个字的二值化,这么都能识别到那,检查下代码。原来是识别的这里相识度需要改下改成85或者90都可以。步骤3:填写正确的数字。 步骤4:继续我们的识别纠正。步骤5:后面就一直识别纠正。第一次因为我们需要纠正处理,所以需要的时间有点长。 步骤6:让我们再来识别一次吧~这次教程到此结束! 源代码: - 时间=now
- 文件名 = Plugin.TURING.Files_Search("C:\数字训练\", "bmp")
- TracePrint 文件名
- aa = split(文件名, "|")
- TracePrint UBound(aa)
- For nnn = 0 To UBound(aa)
- Call 数字识别("C:\数字训练\" & aa(nnn), "C:\识别库.lib")
- Next
- TracePrint "一共有 " & (UBound(aa) + 1)&"张,运行了=" & DateDiff("s",时间 , Now)&"秒"
- Function 数字识别(图片路径, 字库路径)
- Call Plugin.TURING.Pixel_FromPicture(图片路径) ' 需要修改的地方!
- '随意裁剪
- Call Plugin.TURING.Filter_Tailor(467, 36, 529, 59)
- '二值化处理
- Call Plugin.TURING.Filter_Binaryzation("0-136")
- '随机方位切割字符
- 数量= Plugin.TURING.Incise_RandomOrientation(0)
- Call Plugin.TURING.Lib_Load(字库路径)
- TracePrint "字符数量=" & 数量+1
- '识别
- 识别结果 = Plugin.TURING.OCR(85)
- TracePrint "识别结果=" & 识别结果
- If 数量 + 1 = len(识别结果) Then
- Else
- TracePrint "识别错误,识别结果="&识别结果
- '显示获取的图像,方便我们判断填写识别到的字
- Call Plugin.TURING.Pixel_Preview()
- '显示输入框
- 金币 = Plugin.TURING.UI_InputBox ("识别结果:___"&识别结果&"____填写的个数为"&数量 + 1,"",参数3,参数4,803,790)
- TracePrint 金币
- If 金币 <> "" Then
- For i = 0 To 数量
- 字符点阵 = Plugin.TURING.Lib_OneCharData(i)
- 输入的文字 = Mid(金币, i + 1, 1)
- TracePrint 输入的文字
- Call Plugin.TURING.Lib_Save(输入的文字, 字符点阵,字库路径)
- Next
- End If
- End If
- End Function
复制代码 图片素材下载: [attach]252415[/attach]
|