四川有那些网站建设公司,hao123主页我的上网主页,网批做衣服的网站,东莞网站开发方案WPF开发者QQ群#xff1a; 340500857 | 微信群 - 进入公众号主页 加入组织由于微信群人数太多入群请添加小编微信号#xff08;yanjinhuawechat#xff09;或#xff08;W_Feng_aiQ#xff09;邀请入群#xff08;需备注WPF开发者#xff09;本项目是基于开源项目P… 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_castchar*(cls_infer.c_str());md.rec_infer const_castchar*(rec_infer.c_str());md.det_infer const_castchar*(det_infer.c_str());md.keys const_castchar*(ocrkeys.c_str());md.imagefile const_castchar*(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识别如下using PaddleOCRSharp;
private void button1_Click(object sender, EventArgs e){OpenFileDialog ofd new OpenFileDialog();ofd.Filter *.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png;if (ofd.ShowDialog() ! DialogResult.OK) return;var imagebyte File.ReadAllBytes(ofd.FileName);Bitmap bitmap new Bitmap(new MemoryStream(imagebyte));OCRResult ocrResult PaddleOCRSharp.PaddleOCRHelper.DetectText(bitmap);if (ocrResult ! null){MessageBox.Show(ocrResult.Text,识别结果);}}02—效果预览鸣谢素材提供者 - 饶玉田源码地址如下giteehttps://gitee.com/raoyutian/paddle-ocrsharpWPF开发者QQ群 340500857 扫一扫关注我们更多知识早知道点击阅读原文可跳转至源代码