前言
在应用程序开发中,图像中的文字识别(OCR,Optical Character Recognition)是一项非常重要的技术。无论是从扫描文档中提取文本信息,还是从图像中读取标签内容,高效的 OCR 工具都能显著提升工作效率。
项目介绍
PaddleOCRSharp——一个基于百度 PaddleOCR 的 .NET 封装库。
PaddleOCRSharp 提供了强大的 OCR 功能,并且易于集成到 C# 项目中,我们可以轻松地将文字识别功能添加到自己的项目中。
项目效果
实现如下效果:
项目实践
1、安装组件
NuGet 安装包 PaddleOCRSharp,引入 PaddleOCRSharp 库。
具体如下图所示:
2、界面设计
创建 WinForm 界面,设计一个简单的用户界面,包括用于加载图片的按钮、显示图片的 PictureBox 控件以及显示识别结果的 TextBox 或 Label 控件。
3、功能实现
调用 PaddleOCRSharp 进行文字识别。
项目代码
1、引用 PaddleOCRSharp 包
确保项目中包含必要的依赖项,如模型文件和配置文件。
using PaddleOCRSharp;
2、选择图片
在按钮点击事件中,打开文件对话框以选择图片文件,并将其加载到 PictureBox 控件中。
private PaddleOCREngine engine;
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;
this.pictureBox1.Image = Image.FromFile(ofd.FileName);
}
3、识别文字
使用 PaddleOCRSharp 的 API 加载图片并进行文字识别。
解析识别结果,并将结果显示在界面上。
private void button2_Click(object sender, EventArgs e)
{
Bitmap imagebyte = new Bitmap(pictureBox1.Image);
OCRModelConfig config = null;
//OCR参数
OCRParameter oCRParameter = new OCRParameter();
oCRParameter.cpu_math_library_num_threads = 10;
//预测并发线程数
oCRParameter.enable_mkldnn = true;
//web部署该值建议设置为0,否则出错,内存如果使用很大,建议该值也设置为0.
oCRParameter.cls = false;
//是否执行文字方向分类;默认false
oCRParameter.det = true;
//是否开启方向检测,用于检测识别180旋转
oCRParameter.use_angle_cls = false;
//是否开启方向检测,用于检测识别180旋转
oCRParameter.det_db_score_mode = true;
//是否使用多段线,即文字区域是用多段线还是用矩形,
oCRParameter.max_side_len = 1500;
oCRParameter.rec_img_h = 48;
oCRParameter.rec_img_w = 320;
oCRParameter.det_db_thresh = 0.3f;
oCRParameter.det_db_box_thresh = 0.618f;
//初始化OCR引擎
engine = new PaddleOCREngine(config, oCRParameter);
//模型配置,使用默认值
StructureModelConfig structureModelConfig = null;
//表格识别参数配置,使用默认值
StructureParameter structureParameter = new StructureParameter();
PaddleStructureEngine structengine = new PaddleStructureEngine(structureModelConfig, structureParameter);
OCRResult ocrResult = engine.DetectText(imagebyte);
richTextBox1.AppendText(ocrResult.Text);
}
总结
通过以上步骤,我们可以在 WinForm 中实现图片文字识别功能,提升项目的智能化水平和用户体验。
以下是主要的功能点:
用户界面设计:通过 WinForm 提供直观的用户界面,方便用户选择图片并查看识别结果。
PaddleOCRSharp 集成:利用 PaddleOCRSharp 库进行高效的文字识别,支持多种语言和复杂的场景。
实时反馈:在用户选择图片后,立即进行文字识别并将结果显示在界面上,提供即时反馈。
希望本文能帮助大家快速掌握如何在 WinForm 中使用 PaddleOCRSharp 实现这一功能。
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!
作者:上位机李工
出处:mp.weixin.qq.com/s/PmAdFPO9zWWcVcd_j9QFew
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!