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

相关推荐
AI人工智能+3 小时前
发票识别技术:结合OCR与AI技术,实现纸质票据高效数字化,推动企业智能化转型
人工智能·nlp·ocr·发票识别
AI人工智能+5 小时前
结婚证识别技术:利用OCR和深度学习实现婚姻证件信息的自动提取与结构化处理
深度学习·ocr·结婚证识别
xyj418910 小时前
《深入理解Java虚拟机JVM高级特性与最佳实践》
ocr
东风西巷2 天前
STranslate(翻译工具OCR工具) 中文绿色版
学习·ocr·电脑·软件需求
XXX-X-XXJ2 天前
三、从 MinIO 存储到 OCR 提取,再到向量索引生成
人工智能·后端·python·ocr
EkihzniY2 天前
车牌 OCR 识别:国庆高速免费通行的 “隐形引擎”
ocr
wt_cs2 天前
OCR API让工作归于调理-文字识别接口-发票、银行卡、文档识别
ocr
qq_546937272 天前
身份证批量ocr
ocr
AI人工智能+2 天前
行驶证识别技术通过OCR和AI实现信息自动化采集与处理,涵盖图像预处理、文字识别及结构化校验,提升效率与准确性
人工智能·深度学习·ocr·行驶证识别
EkihzniY2 天前
医疗发票 OCR 识别:打通医疗费用处理 “堵点” 的技术助手
大数据·人工智能·ocr