Umi-Ocr_本地开源免费
下载地址
git-hub:https://github.com/hiroi-sora/Umi-OCR
交流1群(群文件有下):674961599
功能介绍:
HTTP接口开启步骤:
按键手机版调用源码:
Import "zmFile.lua"
Import "zm.luae" '导入插件,只需执行一次
Import "ShanHai.lua"
zm.Init
dim t1
'交流Q群:674961599
'注意: 进入 CMD 运行ipconfig/all 命令获取 必填!!
dim IP地址="192.168.2.30"
'测试代码
Do
t1 = TickCount()
//前四个参数是 识别范围 抓抓获取 |最后1个参数0代表不旋转,非代表0旋转270度
umiocr_识别文字(61,63,667,426,0)
TracePrint "耗时:"&TickCount()-t1&"毫秒"
Loop
Function umiocr_识别文字(x1, y1, x2, y2,屏幕模式)//0 是不旋转,非0不旋转 旋转270度
Dim url1 = "http://"&IP地址&":1224/api/ocr"
dim 设备 = Device.GetOSType()//获取设备类型
dim Path,识别文字结果,PixelData
dim 中心x,中心y
dim 左上x坐标,右上x坐标,左下x坐标,右下x坐标
dim 左上y坐标,右上y坐标,左下y坐标,右下y坐标
If 设备 = "android" Then
// TracePrint "11"
SnapShotEx "/sdcard/test.png", x1, y1, x2, y2
Path = "/sdcard/test.png"
If 屏幕模式 = 1 Then
Image.SavePixelData Image.SetRotation(path, 270), path
End If
Else
// TracePrint "22"
SnapShotEx "/test.png", x1, y1, x2, y2
Path = "/test.jpg"
If 屏幕模式 = 1 Then
Image.SavePixelData Image.SetRotation(path, 270), path
End If
End If
dim data= zm.FileReadBinaryBase64(Path)
dim 图片={"base64":"string"}
dim Json字符串 = Encode.TableToJson(图片)
dim data1 = Replace(Json字符串,"string", data)
Dim date1 = {"url":url1,"data":data1, "header":{"Content-Type":"application/json"}}
Dim login = Url.HttpPost(date1) // 内置10秒超时
If login <> "" Then
Dim 结果=Encode.JsonToTable(login)
//遍历全部结果 并且得到中心坐标
If 结果["code"] = 100 Then
For i = 1 To UBOUND(结果["data"]) + 1
左上x坐标 = 结果["data"][i]["box"][1][1]
右上x坐标 = 结果["data"][i]["box"][2][1]
左下x坐标 = 结果["data"][i]["box"][3][1]
右下x坐标 = 结果["data"][i]["box"][4][1]
左上y坐标 = 结果["data"][i]["box"][1][2]
右上y坐标 = 结果["data"][i]["box"][2][2]
左下y坐标 = 结果["data"][i]["box"][3][2]
右下y坐标 = 结果["data"][i]["box"][4][2]
中心x = int((左上x坐标 + 左下x坐标) / 2)
中心y = int((左上y坐标 + 左下y坐标) / 2)
识别文字结果=结果["data"][i]["text"]
TracePrint i&","&识别文字结果&" 中心坐标: "&中心x&","&中心y
Next
Else
TracePrint "识别错误..."
End If
Else
TracePrint "ocr 服务器未开启 请检查..."
End If
End Function
易语言调用源码(需要精益模块,没有的群:674961599下载)
.版本 2
.子程序 umi_cor识别, , , Ez编程君
.参数 文件路径, 文本型
.局部变量 网址, 文本型
.局部变量 IP, 文本型
.局部变量 方式, 整数型
.局部变量 结果, 文本型
.局部变量 提交数据, 文本型
.局部变量 协议头, 文本型
.局部变量 body_base64, 文本型
.局部变量 json, 类_json
.局部变量 code, 整数型
.局部变量 data, 类_json
.局部变量 循环变量, 整数型
.局部变量 识别到的文本, 文本型
.局部变量 文本左上x, 文本型
.局部变量 文本左上y, 文本型
.局部变量 文本右下x, 文本型
.局部变量 文本右下y, 文本型
body_base64 = 编码_BASE64编码 (读入文件 (文件路径))
' IP 点击运行 输入cmd 进入控制台 输入 ipconfig/all 找到本地IP 替换IP变量
IP = “192.168.1.10”
网址 = “http://” + IP + “:1224/api/ocr”
方式 = 1
协议头 = “Content-Type: application/json”
提交数据 = “{” + #引号 + “base64” + #引号 + “:” + #引号 + body_base64 + #引号 + “}”
结果 = 到文本 (网页_访问 (网址, 方式, 提交数据, , , 协议头, ))
.如果真 (json.解析 (结果))
code = json.取属性数值 (“code”)
.如果真 (code = 100)
data = json.取属性 (“data”)
.计次循环首 (data.成员数 (), 循环变量)
.如果真 (json.解析 (data.取成员 (循环变量 - 1).取数据文本 ()))
识别到的文本 = json.取属性对象 (“text”)
.如果真 (json.解析 (json.取属性 (“box”).取数据文本 ()))
文本左上x = json.取成员 (0).取成员 (0).取数据文本 ()
文本左上y = json.取成员 (0).取成员 (1).取数据文本 ()
文本右下x = json.取成员 (2).取成员 (0).取数据文本 ()
文本右下y = json.取成员 (2).取成员 (1).取数据文本 ()
调试输出 (“识别到的文本为:”, 识别到的文本, “,文本范围为:”, 文本左上x, 文本左上y, 文本右下x, 文本右下y)
.如果真结束
.如果真结束
.计次循环尾 ()
.如果真结束
.如果真结束
评论区