CSharp 如何OCR离线识别文本
WPF開發者QQ群:?340500857? | 微信群 -> 進入公眾號主頁?加入組織
?? ? ?由于微信群人數太多入群請添加小編微信號
(yanjinhuawechat)或(W_Feng_aiQ)邀請入群
(需備注WPF開發者)
本項目是基于開源項目PaddleOCR的C++代碼修改并封裝的.NET庫,包含文本OCR功能。同時也提供了C++的調用示例代碼,可以供C++開發者使用。
PaddleOCR.dll文件是基于開源項目PaddleOCR的C++代碼修改的C++動態庫,基于opencv的x64編譯而成的。
為了降低部署文件大小,PaddleOCR.dll使用了openblas依賴編譯,paddle_inference.dll是官方提供的openblas模式下的庫。
模型庫支持輕量版(本項目)、服務器版模型庫(更準確),可以自行更改模型庫適用實際需求。
PS:有更好的方式歡迎推薦。
01
—
使用方式
文件夾結構
Cpp //PaddleOCR.dll的頭文件和庫文件,方便C++調用PaddleOCR.dll
一、C++代碼如下。
#include <iostream> #include <Windows.h> #include "include/PaddleOCR.h" #include "include/OCRResult.h" #include <tchar.h> #include "string" #pragma comment (lib,"PaddleOCR.lib") using namespace std; int main() {LpOCRResult lpocrreult;modeldata md;OCRParameter parameter;char path[MAX_PATH];GetCurrentDirectoryA(MAX_PATH, path);string cls_infer(path);cls_infer += "\\inference\\ch_ppocr_mobile_v2.0_cls_infer";string rec_infer(path);rec_infer += "\\inference\\ch_PP-OCRv2_rec_infer";string det_infer(path);det_infer += "\\inference\\ch_PP-OCRv2_det_infer";string ocrkeys(path);ocrkeys += "\\inference\\ppocr_keys.txt";string imagefile(path);imagefile += "\\test.png";md.cls_infer = const_cast<char*>(cls_infer.c_str());md.rec_infer = const_cast<char*>(rec_infer.c_str());md.det_infer = const_cast<char*>(det_infer.c_str());md.keys = const_cast<char*>(ocrkeys.c_str());md.imagefile = const_cast<char*>(imagefile.c_str());int cout =Detect(md.det_infer, md.cls_infer, md.rec_infer, md.keys, md.imagefile, parameter, &lpocrreult);for (size_t i = 0; i < cout; i++){wstring ss =(WCHAR*)(lpocrreult->pOCRText[i].ptext);std::wcout <<ss;}FreeDetectMem(lpocrreult); }二、添加引用PaddleOCRSharp.dll System.Drawing.dll?
運行需要用的庫文件目錄如下。
PaddleOCRLib //OCR運行需要的文件 |--inference //OCR的模型庫文件夾 |--openblas.dll //第三方引用庫 |--paddle_inference.dll //飛槳庫 |--PaddleOCR.dll //基于開源項目PaddleOCR修改的C++動態庫 PaddleOCRSharp //.NET封裝庫二、新建?MainWindow.xaml 代碼點擊按鈕調用OCR識別如下
02
—
效果預覽
鳴謝素材提供者 - 饒玉田
源碼地址如下
gitee:https://gitee.com/raoyutian/paddle-ocrsharp
WPF開發者QQ群:?340500857?
掃一掃關注我們,
更多知識早知道!
點擊閱讀原文可跳轉至源代碼
總結
以上是生活随笔為你收集整理的CSharp 如何OCR离线识别文本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# WPF图表控件之ChartCont
- 下一篇: .NET 6 中 gRPC 的新功能