WinForm 中使用 PaddleOCRSharp 实现图片文字识别

410 阅读3分钟

前言

在应用程序开发中,图像中的文字识别(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

声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!