目录
1、背景说明
OCR识别在实际工作中的经常使用,PaddleSharp,是对PaddlePaddle的NET封装。使用起来非常简单。
2、代码实现
2.1 文件准备

提前准备的图片,里面的内容非常简单
2.2 代码实现
csharp
using OpenCvSharp;
using Sdcb.PaddleInference;
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.Models;
using Sdcb.PaddleOCR.Models.Local;
// 1. 更换为自己的文件路径及名称
string imagePath = @"D:\BaiduNetdisk\test.jpg";
// 1. 加载中文OCR模型--根据不同的版本,版本会不同
FullOcrModel model = LocalFullModels.ChineseV5;
// 2. 初始化OCR引擎
using var ocrEngine = new PaddleOcrAll(model, PaddleDevice.Mkldnn())
{
AllowRotateDetection = true, // 允许识别旋转的文字
Enable180Classification = true // 允许判断180度倒置的图片
};
// 3. 读取图片
using var image = Cv2.ImRead(imagePath);
if (image == null || image.Empty())
{
Console.WriteLine("❌ 图片读取失败,请检查路径是否正确!");
Console.ReadLine();
return;
}
// 4. 执行OCR识别
PaddleOcrResult ocrResult = ocrEngine.Run(image);
// 5. 输出识别结果
Console.WriteLine("✅ 识别到的全部文本:");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("\n📋 详细识别信息:");
foreach (PaddleOcrResultRegion region in ocrResult.Regions)
{
Console.WriteLine($"文本: {region.Text,-15} | " +
$"置信度: {region.Score:P2} | " +
$"位置: ({region.Rect.Center.X:F0}, {region.Rect.Center.Y:F0}) | " +
$"角度: {region.Rect.Angle:F1}°");
}
Console.ReadLine();
2.3 效果如下

3、注意事项
这里面非常重要是的package的版本。经测试如下的三个package版本均OK。本文中使用的是第三个截图的版本
版本1:

版本2:

版本3:
