目 录CONTENT

文章目录

Umi-Ocr_本地开源免费(附带http调用源码)

Administrator
2025-05-02 / 0 评论 / 0 点赞 / 43 阅读 / 0 字

Umi-Ocr_本地开源免费

下载地址

git-hub:https://github.com/hiroi-sora/Umi-OCR

交流1群(群文件有下):674961599

umiocr封面.png

功能介绍:

image.png

HTTP接口开启步骤:

umiocrhttpk开启1.png

umiocrhttpk开启2.png

umiocrhttpk开启3.png

umiocrhttpk开启4.png


按键手机版调用源码:

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)
                .如果真结束
​
            .如果真结束
​
        .计次循环尾 ()
    .如果真结束
​
.如果真结束
​
​


0

评论区