C# 使用 PaddleOCR 进行图片文字识别

PaddlePaddle(飞桨)是由百度开发的深度学习平台,提供全面的、灵活的工具集,支持开发者构建、训练和部署各种深度学习模型。飞桨具有开源性、高度灵活性、可扩展性,并支持分布式训练,适用于服务器、移动设备和边缘设备的端到端部署。

PaddleOCR 是基于飞桨开发的开源光学字符识别(OCR)工具,提供端到端的 OCR 解决方案,包括文本检测、识别和关键点检测等功能。它支持多语言文本识别,具有高精度和广泛的应用场景。

PaddleSharp 是一个为 C# 开发者设计的飞桨框架封装库,使得开发者能够在 C# 环境中便捷地使用飞桨的深度学习功能,支持模型构建、训练和部署。

设计一个简单的 WinForms 界面,包含两个按钮、一个富文本框和一个 PictureBox,用于加载图片和显示文字识别结果。

安装 Nuget 包:通过 NuGet 安装 PaddleSharp 相关包。
图片文字识别代码实现:
创建 `FullOcrModel` 对象,选择预训练模型。
实例化 `PaddleOcrAll` 对象,配置 OCR 参数。
使用 OpenCV 读取图片并传递给 PaddleOCR 模型。
显示识别结果。

```csharp
using OpenCvSharp;
using Sdcb.PaddleInference;
using Sdcb.PaddleOCR.Models.Local;
using Sdcb.PaddleOCR.Models;
using Sdcb.PaddleOCR;
using System.Diagnostics;


namespace PaddleSharpDemo
{
    public partial class Form1 : Form
    {
        string selectedPicture;


        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            // 图片加载逻辑...
        }


        private void button2_Click(object sender, EventArgs e)
        {
            FullOcrModel model = LocalFullModels.ChineseV3;


            using (PaddleOcrAll all = new PaddleOcrAll(model, PaddleDevice.Mkldnn)
            {
                AllowRotateDetection = true,
                Enable180Classification = false,
            })
            {
                using (Mat src2 = Cv2.ImRead(selectedPicture))
                {
                    PaddleOcrResult result = all.Run(src2);
                    richTextBox1.Text = result.Text;
                }
            }
        }
    }
}
```
除了 C#,PaddleOCR 还可通过命令行或 Python 脚本使用。以下是 Python 脚本的使用示例:


```python
from paddleocr import PaddleOCR, draw_ocr


ocr = PaddleOCR(use_angle_cls=True, lang="ch")
img_path = 'path_to_your_image.png'
result = ocr.ocr(img_path, cls=True)


for line in result[0]:
    print(line)


# 显示结果
# Python 代码继续...
```


PaddleOCR 提供了一个高效、准确且易于集成的 OCR 解决方案。相比其他非开源的 OCR 工具,PaddleOCR 提供了更多的灵活性和选择性。希望我的分享能帮助大家快速上手 PaddleOCR,在 C# 项目中实现文字识别功能。

- EOF -

技术群:添加小编微信dotnet999

公众号:dotnet讲堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值