【全网唯一】Go 纯本地离线文字识别Windows版dll插件

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

目的

        Go语言(又称Golang)是由Google开发的一种静态类型、编译型开源编程语言。它于2009年正式发布,由Robert Griesemer、Rob Pike和Ken Thompson(Unix和C语言的设计者之一)共同设计。本篇文章主要讲解下go语言的TomatoOCR纯本地离线文字识别Windows版插件如何使用和集成。

准备工作

  1、搭建Go开发环境

  2、下载对应的TomatoOCR.dll依赖包 :下载

注:go如果安装的是x86的就下载x86开头的dll,go如果安装的是x64的就下载x64开头的dll 

  • 目前插件支持中英文、繁体字、日语、韩语识别;
  • 支持小图、区域图和单行文字识别,准确率高达99%;
  • 支持多种返回格式,json\文本\数字\自定义;
  • 支持二值化;
  • 支持找字返回坐标并点击;
  • 超高的稳定性,速度快;
  • 支持多线程;

依赖包集成

依赖包放置

 注意:由于32位应用内存限制,初始化ocr线程不要太多,建议5个以下,64位应用不受限制

32位: 下载“【x86 MT】本地文字识别依赖包(中英文).dll”或者“【x86 MT】本地文字识别依赖包(中英文+繁、日、韩).dll”依赖包后,改名为TomatoOCR.dll,将文件放置在项目中

64位: 下载“【x64 MT】本地文字识别依赖包(中英文).dll”或者“【x64 MT】本地文字识别依赖包(中英文+繁、日、韩).dll”依赖包后,改名为TomatoOCR.dll,将文件放置在项目中

下载依赖包后改名为TomatoOCR.dll和TomatoOCR的go语言头文件,将文件放置在项目中,如下图:

   

入口文件中,main.go的代码如下: 

package main

import "C"
import (
    "awesomeProject/TomatoOCR"   // awesomeProject是项目名
    "fmt"
)

func main() {
    TomatoOCR.Init(2) // 初始化两个线程
    
    license := "" // 设置license,见授权码获取
    remark := ""  // 设置备注
    flag := TomatoOCR.SetLicense(license, remark)
    fmt.Println("license:", flag)
    // *******************************以上是初始化代码,只需要写一次************************************
    
    ocr_start()
}


fuc ocr_start() {
    for i := 0; i < 1; i++ {
        obj := TomatoOCR.Lock()  // 获取句柄,与unlock一一对应
         
        // 注:ch、ch-2.0、ch-3.0版可切换使用,对部分场景可适当调整
        // "ch":普通中英文识别,1.0版模型
        // "ch-2.0":普通中英文识别,2.0版模型
        // "ch-3.0":普通中英文识别,3.0版模型
        // "cht":繁体,"japan":日语,"korean":韩语
        TomatoOCR.SetRecType(obj, "ch-3.0")
        
        TomatoOCR.SetDetBoxType(obj, "rect"); // 调整检测模型检测文本参数- 默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本
         
        TomatoOCR.SetDetUnclipRatio(obj, 1.9); // 调整检测模型检测文本参数 - 默认1.9: 值范围1.6-2.5之间
        
        TomatoOCR.SetRecScoreThreshold(obj, 0.5) // 识别得分过滤 - 默认0.1,值范围0.1-0.9之间
         
        TomatoOCR.SetReturnType(obj, "json") 
        // 返回类型 - 默认"json": 包含得分、坐标和文字;
        // "text":纯文字;
        // "num":纯数字;
        // 自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容
        
        TomatoOCR.SetRunMode(obj, "slow"); // 默认“slow”;“fast”:小图识别上会加速,但准确率会降低,推荐用默认值“slow”
        //TomatoOCR.SetFilterColor(obj, "", "black"); //  设置滤色值和背景色(black\white),滤色值默认是空的,详细使用见方法说明
        
        _type := 3
        // _type=0 : 只检测
        // _type=1 : 方向分类 + 识别
        // _type=2 : 只识别
        // _type=3 : 检测 + 识别

        // 例子一
        result1 := TomatoOCR.OcrFile(obj, "D:\\WorkSpaceProjects\\PycharmProjects\\TestLoadTomato\\test_dll\\images\\02.png", _type)
        fmt.Println("result:", result1)

        // 例子二,传入屏幕坐标,进行识别,最后一个参数:可以输出裁剪的图片
        result2 := TomatoOCR.OcrScreen(obj, 0, 0, 500, 100, _type, "")
        fmt.Println("result:", result2)
        
        // 例子三,传入图片的base64字符串
        //result3 := TomatoOCR.OcrBase64(obj, 图片base64字符串, _type, "")
        //fmt.Println("result:", result3)

        // 找字
        point := TomatoOCR.FindTapPoint(obj, "版本")
        fmt.Println("point:", point)

        // 找字
        points := TomatoOCR.FindTapPoints(obj, "版本")
        fmt.Println("points:", points)

        TomatoOCR.Unlock(obj)   // 释放句柄
    }
}

运行结果 

总结

        提供的各种版本的dll,完全满足各种语言的需求,实现代码复用、节省资源、动态加载、便于维护,并支持模块化开发和多语言协作,c++\c#\python\java\go等等,关注我的专栏,所以的语言加载方式都会呈现。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值