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

相关推荐
楚识科技20 小时前
手写表格OCR接口接入全指南:实战调用与结构化字段解析
ocr
VidDown1 天前
从视频画面里提取文字:OCR、文字检测与结构化输出
python·网络协议·ocr·音视频·视频编解码·视频
一马平川的大草原1 天前
pdf转md的三种方式
pdf·ocr·md
zhoupenghui1681 天前
复杂PDF与扫描件解析存储实战:文本、图片OCR、表格识别及RAG向量入库全流程
pdf·ocr·复杂pdf解析
楚识科技8 天前
电力电网 OCR 落地实践:轻量级模型 CPU 推理与鲲鹏 + 昇腾信创适配
ocr
巡山小钻风来也10 天前
【保姆级教程】自定义数据集微调PP-OCRv6文本检测模型
python·ocr·paddlepaddle
山顶夕景11 天前
【文档解析】2026年技术发展和趋势
ocr·文档解析·agentic
楚识科技11 天前
云端 API 与私有化 OCR 的架构取舍:数据边界、并发模型与成本测算
ocr
AI人工智能+11 天前
基于深度学习的车辆合格证识别技术,通过图像预处理、文字检测、文字识别到结构化提取、后处理校验,实现车辆合格证信息的结构化提取
深度学习·自然语言处理·ocr·车辆合格证识别
楚识科技12 天前
卡证OCR识别实战:证件识别SDK、端侧设备与私有化部署清单
ocr