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

相关推荐
EkihzniY15 小时前
OCR 识别技术:各行业信息化转型的 “加速器”
ocr
虚行20 小时前
一个海康相机OCR的程序
ocr
kevin 11 天前
智能文档处理业务,应该选择大模型还是OCR专用小模型?
ocr
空影星1 天前
Pot Translator,跨平台划词翻译与OCR工具
python·ocr·电脑
私人珍藏库2 天前
[Windows] 天若OCR开源版 6.0.0
ocr
ONLYOFFICE2 天前
如何在ONLYOFFICE中使用OCR工具:轻松识别图片和PDF中的文字
编辑器·ocr·office
晨欣2 天前
Umi-OCR:Windows7和Linux上可免费离线使用的OCR应用!
linux·运维·ocr
doris6104 天前
资产 OCR 识别:批量导入效率提升指南
ocr·资产管理·固定资产管理系统
TextIn智能文档云平台4 天前
复杂PDF文档结构化提取全攻略——从OCR到大模型知识库构建
pdf·ocr
EkihzniY5 天前
OCR 证件识别:驱动澳门酒店自助入住智能化
嵌入式硬件·ocr