RapidOcrNet 1.0.0
dotnet add package RapidOcrNet --version 1.0.0
NuGet\Install-Package RapidOcrNet -Version 1.0.0
<PackageReference Include="RapidOcrNet" Version="1.0.0" />
<PackageVersion Include="RapidOcrNet" Version="1.0.0" />
<PackageReference Include="RapidOcrNet" />
paket add RapidOcrNet --version 1.0.0
#r "nuget: RapidOcrNet, 1.0.0"
#:package RapidOcrNet@1.0.0
#addin nuget:?package=RapidOcrNet&version=1.0.0
#tool nuget:?package=RapidOcrNet&version=1.0.0
RapidOcrNet
Cross-platform OCR processing library using PaddleOCR ONNX models, and based on original code from RapidAI's RapidOCR.
The code was optimised to remove dependencies on System.Drawing and OpenCV. The image processing is now done only using SkiaSharp and PContourNet.
The project now uses PP-OCR v5 models, but v4 and v3 models are also supported (see here).
All ONNX models and files and can be downloaded from: https://github.com/RapidAI/RapidOCR/blob/main/python/rapidocr/default_models.yaml You will need 4 different files for the code to work. Example below for PP-OCR v5 with latin language:
- Detection:
ch_PP-OCRv5_mobile_det.onnx - Classification:
ch_ppocr_mobile_v2.0_cls_infer.onnx - Recognition:
latin_PP-OCRv5_rec_mobile_infer.onnx - Model dictionary:
ppocrv5_latin_dict.txt
Usage
string targetImg = "image.png";
using (var ocrEngin = new RapidOcr())
{
ocrEngin.InitModels();
using (SKBitmap originSrc = SKBitmap.Decode(targetImg))
{
OcrResult ocrResult = ocrEngin.Detect(originSrc, RapidOcrOptions.Default);
Console.WriteLine(ocrResult.ToString());
Console.WriteLine(ocrResult.StrRes);
Console.WriteLine();
// Draw bounding boxes
foreach (var block in ocrResult.TextBlocks)
{
var points = block.BoxPoints;
using (var canvas = new SKCanvas(originSrc))
using (var paint = new SKPaint() { Color = SKColors.Red })
{
canvas.DrawLine(points[0], points[1], paint);
canvas.DrawLine(points[1], points[2], paint);
canvas.DrawLine(points[2], points[3], paint);
canvas.DrawLine(points[3], points[0], paint);
}
}
using (var fs = new FileStream(Path.ChangeExtension(targetImg, "_ocr.png"), FileMode.Create))
{
originSrc.Encode(fs, SKEncodedImageFormat.Png, 100);
}
}
}
Notice
Based on source code originally developed in the RapidOCR project (Apache-2.0 license).
Uses parts of source code originally developed in the PdfPig project (Apache-2.0 license).
The dependency on OpenCV was removed thanks to the PContour library and its C# port.
The models made available are from the PaddleOCR project (Apache-2.0 license) and were downloaded from https://github.com/RapidAI/RapidOCR/blob/main/python/rapidocr/default_models.yaml
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Clipper2 (>= 1.5.4)
- Microsoft.ML.OnnxRuntime (>= 1.23.2)
- Microsoft.ML.OnnxRuntime.Managed (>= 1.23.2)
- SkiaSharp (>= 3.119.1)
- SkiaSharp.NativeAssets.Linux (>= 3.119.1)
-
net8.0
- Clipper2 (>= 1.5.4)
- Microsoft.ML.OnnxRuntime (>= 1.23.2)
- Microsoft.ML.OnnxRuntime.Managed (>= 1.23.2)
- SkiaSharp (>= 3.119.1)
- SkiaSharp.NativeAssets.Linux (>= 3.119.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 291 | 11/22/2025 |