函数:ocrText 本地光学字符识别
函数功能:将指定区域的图像转换为其显示出的文字
函数方法
text/array = ocrText(x1,y1,x2,y2,language,whitelist,flag)
text/array = ocrText(x1,y1,x2,y2,language,{whitelist,flag,imagepath})
必填
参数 | 类型 | 说明 |
---|---|---|
x1 | number | 欲识别的区域左上角顶点屏幕横坐标 |
y1 | number | 欲识别的区域左上角顶点屏幕纵坐标 |
x2 | number | 欲识别的区域右下角顶点屏幕横坐标 |
y2 | number | 欲识别的区域右下角顶点屏幕纵坐标 |
选填
参数 | 类型 | 说明 |
---|---|---|
language | number | 语言选择:不写默认 0 - 英文/数字;1 - 中文, iOS 仅支持 0、1,请勿使用其他参数,具体使用方法详见下方注意事项 |
whitelist | string | 识别白名单,设置此参数后,不在白名单中的字符将被忽略 |
flag | boolean | 不填或者 flag = false 返回字符串,flag = true 返回坐标 |
imagepath | string | 需要识别的图片路径 |
返回值
返回值 | 类型 | 说明 |
---|---|---|
text | string | 识别结果 |
array | table | 坐标 |
返回值为 string 函数用例
-- OCR 英文识别,注意本函数仅对标准字体识别尚可
-- 识别区域
x,y,x1,y1 = 0, 100, 300, 300
text = ocrText(x,y,x1,y1,0)
-- 识别结果
nLog(text)
返回 table 坐标函数用例
x,y,x1,y1 = 0, 100, 300, 300
array = ocrText(x,y,x1,y1, 0,true)
-- 识别结果
text = "识别字符:"..array.text.."\ninfo长度:" .. #array.info
for var= 1, #array.info do
text = text .. "\ninfo[" .. var .. "] x:" ..array.info[var].x+x ..
" y:"..array.info[var].y+y ..
" w:"..array.info[var].w+array.info[var].x+x ..
" h:"..array.info[var].h+array.info[var].y+y ..
" c:"..array.info[var].c ..
" char:"..array.info[var].char
end
nLog(text)
返回 table 坐标介绍
-- text 表示识别的字符串;
-- info 包含一个每个识别符号的信息;
-- x 代表相对识别完整图片的位置的左上角 x 坐标;
-- y 代表相对识别完整图片的位置的左上角 y 坐标;
-- w 代表识别符号的宽度;
-- h 代表识别符号的高度;
-- c 代表相似度;
{
text = "ocr文字"
info =
{
{ x = 0, y= 1, w=5, h=10, c = "90.01", char="字符" }
….
}
}
返回识别图片中文字的坐标函数用例
--[[
本示例不可直接使用,需要修改正确的坐标及需要识别的图片存在
如果需要使用 imagepath 参数需要将第 6 个参数改成 table,如果同时需要使用 flag 及 whitelist 参数也需要将这两个参数写入 table 中
]]
x,y,x1,y1 = 318, 50, 437, 113
array = ocrText(x,y,x1,y1,1,{flag = true,imagepath = "C:\\Users\\cce\\Desktop\\1112\\tupian.png"})
text = "识别字符:"..array.text.."\ninfo长度:" .. #array.info
for var= 1, #array.info do
text = text .. "\ninfo[" .. var .. "] x:" ..array.info[var].x+x ..
" y:"..array.info[var].y+y ..
" w:"..array.info[var].w+array.info[var].x+x ..
" h:"..array.info[var].h+array.info[var].y+y ..
" c:"..array.info[var].c ..
" char:"..array.info[var].char
end
dialog(text)
返回识别图片中文字函数用例
--[[
本示例不可直接使用,需要修改正确的坐标及需要识别的图片存在
如果需要使用 imagepath 参数需要将第 6 个参数改成 table,如果需要使用 flag 及 whitelist 参数也需要将这两个参数写入 table 中
]]
x,y,x1,y1 = 318, 50, 437, 113
text = ocrText(x,y,x1,y1,1,{flag = "false",imagepath="C:\\Users\\cce\\Desktop\\1112\\tupian.png"})
nLog(text)
注意事项
- language 参数引擎版本 Android 已支持
0、1、10、20、21
。 - language 参数 iOS 仅支持
0、1
,不支持10、20、21
。 - 引擎版本 Android v2.0 - 3.1.7.1 - v3.1.7版本仅支持
0、1
。 language 参数介绍:
0 - 数字/字母
1 - 中文
10 - 普通识别,适用于部分存在干扰线背景的文字识别
20 - 适用于部分存在干扰线且深色背景的文字识别
21 - 适用于部分深色背景的文字识别
- 触动智控已内置中英文字库,直接调用即可。
- 如果当前电脑系统为 W11 系统并且智控安装到 C 盘,在调用此函数需要以管理员身份运行智控,否则会出现识别错误问题;智控程序鼠标右键点击「属性」→「兼容性」→勾选「以管理员身份运行此程序」→点击「确定」,默认每次打开程序都会以管理员身份运行或者鼠标点击「以管理员身份运行」。