C#调用WechatOCR.exe实现本地OCR文字识别

最近遇到一个需求:有大量的扫描件需要还原为可编辑的文本,很显然需要用到图片OCR识别为文字技术。本来以为这个技术很普遍的,结果用了几个开源库,效果不理想。后来,用了取巧的方法,直接使用了WX的OCR识别模型,因为发现WX电脑端的OCR识别真是黑科技啊,好用的很!识别率99.9%,并且是本地识别,不需要调用接口。放几张图片看看,中文识别很强!图片里很多干扰因素都自动屏蔽了,厉害!

简单用C# + winforms实现了一下:

cs 复制代码
public class ImageOcr
{
    public static void Run(string imagePath, Action<string,WeiOcrResult> callback)
    {
        string wechatOcrDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"extracted\WeChatOCR.exe");
        string wechatDir = AppDomain.CurrentDomain.BaseDirectory;

        OcrManager? ocrManager = new OcrManager();
        var ocrPtr= GCHandle.ToIntPtr(GCHandle.Alloc(ocrManager));
        ocrManager = GCHandle.FromIntPtr(ocrPtr).Target as OcrManager;
        if (ocrManager != null)
        {
            ocrManager.SetExePath(wechatOcrDir);
            ocrManager.SetUsrLibDir(wechatDir);
            ocrManager.SetOcrResultCallback(callback);

            ocrManager.StartWeChatOCR(ocrPtr);
            ocrManager.DoOCRTask(imagePath);

            Thread.Sleep(1000);

            while (ocrManager.m_taskIdQueue.Count != OcrManager.OCR_MAX_TASK_ID)
            {
                // Wait for OCR tasks to complete
                Thread.Sleep(100);
            }

            ocrManager.KillWeChatOCR();
        }
    }
}

获取全部源代码

参考链接:https://www.cnblogs.com/slmk/p/18011420

相关推荐
天远数科17 小时前
零信任架构实战:基于天远身份证OCR构建自动化高并发移动支付网关
人工智能·架构·自动化·ocr
聚美智数17 小时前
机动车登记证书 OCR 识别-绿本信息结构化提取-车辆登记证书识别-机动车证件 OCR 解析 API 接口介绍
ocr
yychen_java18 小时前
从像素到汉字:基于深度学习的中文OCR系统六步全链路剖析
人工智能·深度学习·ocr
天远Date Lab21 小时前
计算机视觉管道构建:基于天远身份证OCR实现机器学习身份信息提取
人工智能·机器学习·计算机视觉·ocr
黄一一9112431 天前
告别手动敲字,本地截图 OCR,识别完直接复制!开源截图识别工具
windows·ocr·开源软件·贴图
Sinosecu-OCR1 天前
没有OCR就没有扫描仪
ocr·ocr识别·扫描仪
学弟1 天前
【系列梳理】文档解析系列梳理
人工智能·ocr
YOLO数据集集合1 天前
水表数字识别数据集 | 水表数字 OCR 智能抄表 目标检测 9031期
人工智能·目标检测·ocr·数字识别·水表数字·智能抄表·水表
Sinosecu-OCR2 天前
企业OCR POC测试怎么做?一套可落地的33类测试样本方法
ocr·ocr识别·ocr识别系统