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

相关推荐
晓131313 小时前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr
秋窗718 小时前
Mac 部署Latex OCR并优化体验(打包成App并支持全局快捷键)
macos·ocr·latex
RainSerein1 天前
Laravel8中调取腾讯云文字识别OCR
ocr·php·腾讯云·laravel
老胖闲聊11 天前
Python pytesseract【OCR引擎库】 简介
开发语言·python·ocr
沉到海底去吧Go12 天前
【工具教程】PDF指定区域OCR识别重命名工具使用教程和注意事项
pdf·ocr·图片区域识别改名·仓储物流单据识别·物流单据识别改名·pdf区域识别改名·pdf区域识别重命名
heart000_112 天前
通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
运维·自动化·ocr
kevin 112 天前
OCR大模型,破解金融文档处理困境,从文字识别到文字理解
金融·ocr
Just_Paranoid12 天前
华为云Flexus+DeepSeek征文|基于Dify构建智能票据信息识别助手
华为云·ocr·dify·maas·deepseek·flexusx
whoarethenext13 天前
使用 C++/OpenCV 构建中文 OCR 系统:实现账单、发票及 PDF 读取
c++·opencv·ocr
阿幸软件杂货间14 天前
望言OCR:免费视频字幕提取工具,高效识别吊打付费软件
ocr·字幕