OCR tiếng Việt trong C#và .NET

Các phiên bản khác của tài liệu này:

IronOCR là một thành phần phần mềm C#cho phép lập trình viên .NET đọc văn bản từ hình ảnh và tài liệu PDF bằng 126 ngôn ngữ, bao gồm cả tiếng Việt.

Nó là một nhánh nâng cao của Tesseract, được xây dựng dành riêng cho các nhà phát triển .NET và thường xuyên vượt trội hơn các công cụ Tesseract khác về cả tốc độ và độ chính xác.

Nội dung của IronOcr.Languages.Vietnamese

Gói này chứa 132 ngôn ngữ OCR cho .NET:

  • Tiếng Việt
  • Tiếng Việt
  • Tiếng việt nhanh
  • VietnameseAlphabet
  • VietnameseAlphabetBest
  • VietnameseAlphabetFast

Tải xuống

Gói ngôn ngữ tiếng Việt [Tiếng Việt]
* Download as Zip
* Install with
https://www.nuget.org/packages/IronOcr.Languages.Vietnamese/'> NuGet

Cài đặt

Việc đầu tiên chúng ta phải làm là cài đặt gói OCR tiếng Việt của chúng tôi vào dự án .NET của bạn.

PM> Install-Package IronOCR.Languages.Vietnamese

Ví dụ về mã

Ví dụ về mã C#này đọc văn bản tiếng Việt từ tài liệu Hình ảnh hoặc PDF.

//PM> Install-Package IronOcr.Languages.Vietnamese
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var Input = new OcrInput(@"images\Vietnamese.png"))
{
var Result = Ocr.Read(Input);
Var AllText = Result.Text
}
//PM> Install-Package IronOcr.Languages.Vietnamese
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var Input = new OcrInput(@"images\Vietnamese.png"))
{
var Result = Ocr.Read(Input);
Var AllText = Result.Text
}
'PM> Install-Package IronOcr.Languages.Vietnamese
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese
Using Input = New OcrInput("images\Vietnamese.png")
Dim Result = Ocr.Read(Input)
Dim AllText As Var = Result.Text
End Using
VB   C#

Tại sao chọn IronOCR?

IronOCR là một thư viện phần mềm .NET dễ cài đặt, đầy đủ và đầy đủ tài liệu.

Chọn IronOCR để đạt độ chính xác 99,8% + OCR mà không cần sử dụng bất kỳ dịch vụ web bên ngoài nào, phí liên tục hoặc gửi tài liệu bí mật qua internet.

Tại sao các nhà phát triển C#chọn IronOCR thay vì Vanilla Tesseract:

  • Cài đặt dưới dạng một DLL hoặc NuGet
  • Bao gồm cho các động cơ Tesseract 5, 4 và 3 ra khỏi hộp.
  • Độ chính xác 99,8% vượt trội đáng kể so với Tesseract thông thường.
  • Tốc độ cực nhanh và Đa luồng
  • Tương thích MVC, WebApp, Desktop, Console & Server Application
  • Không có Exes hoặc mã C ++ để làm việc
  • Hỗ trợ đầy đủ PDF OCR
  • Để thực hiện OCR hầu hết mọi tệp Hình ảnh hoặc PDF
  • Hỗ trợ đầy đủ .NET Core, Standard và FrameWork
  • Triển khai trên Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • Đọc mã vạch và mã QR
  • Xuất OCR sang XHTML
  • Xuất OCR sang các tài liệu PDF có thể tìm kiếm được
  • Hỗ trợ đa luồng
  • 126 ngôn ngữ quốc tế đều được quản lý thông qua tệp NuGet hoặc OcrData
  • Trích xuất Hình ảnh, Tọa độ, Thống kê và Phông chữ. Không chỉ là văn bản.
  • Có thể được sử dụng để phân phối lại Tesseract OCR bên trong các ứng dụng thương mại và độc quyền.

IronOCR tỏa sáng khi làm việc với hình ảnh trong thế giới thực và các tài liệu không hoàn hảo như ảnh chụp hoặc bản quét có độ phân giải thấp có thể có nhiễu kỹ thuật số hoặc không hoàn hảo.

Các thư viện OCR miễn phí khác cho nền tảng .NET chẳng hạn như các API .net tesseract khác và các dịch vụ web không hoạt động quá tốt trên các trường hợp sử dụng trong thế giới thực này.

OCR với Tesseract 5 - Bắt đầu mã hóa bằng C #

Mẫu mã dưới đây cho thấy việc đọc văn bản từ hình ảnh bằng C#hoặc VB .NET dễ dàng như thế nào.

Lót

string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
VB   C#

Hello World có thể cấu hình

// PM> Install-Package IronOCR.Languages.Vietnamese
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... bạn có thể thêm bất kỳ số lượng hình ảnh nào
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
// PM> Install-Package IronOCR.Languages.Vietnamese
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... bạn có thể thêm bất kỳ số lượng hình ảnh nào
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
' PM> Install-Package IronOCR.Languages.Vietnamese
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese
Using Input = New OcrInput()
Input.AddImage("images/sample.jpeg") var Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

C#PDF OCR

Cách tiếp cận tương tự cũng có thể được sử dụng để trích xuất văn bản từ bất kỳ tài liệu PDF nào.

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Chúng tôi cũng có thể chọn số trang PDF cụ thể để OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 trang cho mỗi trang của PDF
}
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// Chúng tôi cũng có thể chọn số trang PDF cụ thể để OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 trang cho mỗi trang của PDF
}
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese
Using input = New OcrInput()
input.AddPdf("example.pdf", "password")
' Chúng tôi cũng có thể chọn số trang PDF cụ thể để OCR

Dim Result = Ocr.Read(input)

Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
' 1 trang cho mỗi trang của PDF
End Using
VB   C#

OCR cho nhiều trang TIFF

OCR Đọc định dạng tệp TIFF bao gồm nhiều tài liệu trang. TIFF cũng có thể được chuyển đổi trực tiếp thành tệp PDF với văn bản có thể tìm kiếm được.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("multi - frame.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("multi - frame.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese

Using Input = New OcrInput()
input.AddMultiFrameTiff("multi - frame.tiff")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Mã vạch và QR

Một tính năng độc đáo của IronOCR là nó có thể đọc mã vạch và mã QR từ các tài liệu trong khi nó đang quét văn bản. Các phiên bản của Lớp OcrResult.OcrBarcode cung cấp cho nhà phát triển thông tin chi tiết về từng mã vạch được quét.

// using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
input.AddImage("img/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// thuộc tính loại và vị trí cũng được hiển thị
}
}
// using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
input.AddImage("img/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// thuộc tính loại và vị trí cũng được hiển thị
}
}
' using IronOcr;
Dim Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True

Using input = New OcrInput()
input.AddImage("img/Barcode.png")
Dim Result = Ocr.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
' thuộc tính loại và vị trí cũng được hiển thị
Next Barcode
End Using
VB   C#

OCR trên các khu vực cụ thể của hình ảnh

Tất cả các phương pháp quét và đọc của IronOCR đều cung cấp khả năng chỉ định chính xác phần nào của trang hoặc các trang mà chúng tôi muốn đọc văn bản từ đó. Điều này rất hữu ích khi chúng ta đang xem xét các biểu mẫu được tiêu chuẩn hóa và có thể tiết kiệm rất nhiều thời gian cũng như nâng cao hiệu quả.

Để sử dụng các vùng cắt, chúng ta sẽ cần thêm một tham chiếu hệ thống vào System.Drawing để chúng ta có thể sử dụng đối tượng System.Drawing.Rectangle .

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Kích thước tính bằng px

Input.Add("document.png", ContentArea);

var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Kích thước tính bằng px

Input.Add("document.png", ContentArea);

var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese

Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
	.X = 215,
	.Y = 1250,
	.Height = 280,
	.Width = 1335
}
' Kích thước tính bằng px

Input.Add("document.png", ContentArea)

Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

OCR cho bản quét chất lượng thấp

Lớp IronOCR OcrInput có thể sửa lỗi quét mà Tesseract bình thường không đọc được.

using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // sửa lỗi kỹ thuật số nhiễu và quét kém
Input.Deskew(); // sửa lỗi xoay và phối cảnh
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // sửa lỗi kỹ thuật số nhiễu và quét kém
Input.Deskew(); // sửa lỗi xoay và phối cảnh
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese

Using Input = New OcrInput("img\Potter.LowQuality.tiff")
Input.DeNoise() ' sửa lỗi kỹ thuật số nhiễu và quét kém
Input.Deskew() ' sửa lỗi xoay và phối cảnh
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Xuất kết quả OCR dưới dạng PDF có thể tìm kiếm

Hình ảnh sang PDF với các chuỗi văn bản có thể sao chép. Có thể được lập chỉ mục bởi các công cụ tìm kiếm và cơ sở dữ liệu.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput()){
input.Title = "Quarterly Report"
input.AddImage("image1.jpeg");
input.AddImage("image2.png");
input.AddImage("image3.gif");

var Result = Ocr.Read(input);
Result.SaveAsSearchablePdf("searchable.pdf")
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput()){
input.Title = "Quarterly Report"
input.AddImage("image1.jpeg");
input.AddImage("image2.png");
input.AddImage("image3.gif");

var Result = Ocr.Read(input);
Result.SaveAsSearchablePdf("searchable.pdf")
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese

Using Input = New OcrInput()
input.Title = "Quarterly Report" input.AddImage("image1.jpeg")
input.AddImage("image2.png")
input.AddImage("image3.gif")

Dim Result = Ocr.Read(input)
Result.SaveAsSearchablePdf("searchable.pdf")
End Using
VB   C#

TIFF sang chuyển đổi PDF có thể tìm kiếm

Chuyển đổi trực tiếp tài liệu TIFF (hoặc bất kỳ nhóm tệp hình ảnh nào) sang tệp PDF có thể tìm kiếm được, có thể được lập chỉ mục bởi mạng nội bộ, trang web và công cụ tìm kiếm google.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("example.tiff")
var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput()){
input.AddMultiFrameTiff("example.tiff")
var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese

Using Input = New OcrInput()
input.AddMultiFrameTiff("example.tiff") var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
End Using
VB   C#

Xuất kết quả OCR dưới dạng HTML

Chuyển đổi hình ảnh OCR sang XHTML.

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var Input = new OcrInput()){
input.Title = "Html Title"
input.AddImage("image1.jpeg");
var Result = Ocr.Read(input);
Result.SaveAsHocrFile("results.html");
}
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
using (var Input = new OcrInput()){
input.Title = "Html Title"
input.AddImage("image1.jpeg");
var Result = Ocr.Read(input);
Result.SaveAsHocrFile("results.html");
}
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese
Using Input = New OcrInput()
input.Title = "Html Title" input.AddImage("image1.jpeg")
Dim Result = Ocr.Read(input)
Result.SaveAsHocrFile("results.html")
End Using
VB   C#

Bộ lọc tăng cường hình ảnh OCR

IronOCR cung cấp các bộ lọc độc đáo cho các đối tượng OcrInput để cải thiện hiệu suất OCR.

Ví dụ về mã tăng cường hình ảnh

Làm cho hình ảnh đầu vào OCR có chất lượng cao hơn để tạo ra kết quả OCR tốt hơn, nhanh hơn.

using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // sửa lỗi kỹ thuật số nhiễu và quét kém
Input.Deskew(); // sửa lỗi xoay và phối cảnh
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // sửa lỗi kỹ thuật số nhiễu và quét kém
Input.Deskew(); // sửa lỗi xoay và phối cảnh
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese

Using Input = New OcrInput("LowQuality.jpeg")
Input.DeNoise() ' sửa lỗi kỹ thuật số nhiễu và quét kém
Input.Deskew() ' sửa lỗi xoay và phối cảnh
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

Danh sách Bộ lọc Hình ảnh OCR

Các bộ lọc đầu vào để nâng cao hiệu suất OCR được tích hợp trong IronOCR bao gồm:

  • OcrInput.Rotate (độ kép) - Xoay hình ảnh theo một số độ theo chiều kim đồng hồ. Đối với ngược chiều kim đồng hồ, hãy sử dụng số âm.
  • OcrInput.Binarize () - Bộ lọc hình ảnh này biến mọi pixel thành màu đen hoặc trắng mà không có điểm giữa. Có thể Cải thiện các trường hợp hiệu suất OCR có độ tương phản rất thấp của văn bản với nền.
  • OcrInput.ToGrayScale () - Bộ lọc hình ảnh này biến mọi pixel thành một bóng râm của thang độ xám. Không có khả năng cải thiện độ chính xác của OCR nhưng có thể cải thiện tốc độ
  • OcrInput.Contrast () - Tự động tăng độ tương phản. Bộ lọc này thường cải thiện tốc độ OCR và độ chính xác trong các lần quét có độ tương phản thấp.
  • OcrInput.DeNoise () - Loại bỏ nhiễu kỹ thuật số. Bộ lọc này chỉ nên được sử dụng khi có tiếng ồn.
  • OcrInput.Invert () - Đảo ngược mọi màu. Vd: White trở thành đen: đen trở thành trắng.
  • OcrInput.Dilate () - Hình thái học nâng cao. Dilation thêm pixel vào ranh giới của các đối tượng trong một hình ảnh. Đối lập với Erode
  • OcrInput.Erode () - Hình thái học nâng cao. Xói mòn loại bỏ các pixel trên ranh giới đối tượng
  • OcrInput.Deskew () - Xoay hình ảnh để nó có hướng lên trên và trực giao. Điều này rất hữu ích cho OCR vì dung sai Tesseract đối với các bản quét lệch có thể thấp tới 5 độ.
  • OcrInput.DeepCleanBackgroundNoise () - Loại bỏ tạp âm nền nặng. Chỉ sử dụng bộ lọc này trong trường hợp có tạp âm nền của tài liệu quá lớn, vì bộ lọc này cũng sẽ có nguy cơ làm giảm độ chính xác OCR của tài liệu sạch và rất tốn CPU.
  • OcrInput.EnhanceResolution - Nâng cao độ phân giải của hình ảnh chất lượng thấp. Bộ lọc này thường không cần thiết vì OcrInput.MinimumDPIOcrInput.TargetDPI sẽ tự động bắt và giải quyết các đầu vào có độ phân giải thấp.

CleanBackgroundNoise. Đây là một cài đặt hơi tốn thời gian; tuy nhiên, nó cho phép thư viện tự động làm sạch nhiễu kỹ thuật số, các vết nhăn trên giấy và các điểm không hoàn hảo khác trong một hình ảnh kỹ thuật số mà nếu không, các thư viện OCR khác sẽ khiến nó không thể đọc được.

EnhanceContrast là một cài đặt khiến IronOCR tự động tăng độ tương phản của văn bản so với nền của hình ảnh, tăng độ chính xác của OCR và nói chung là tăng hiệu suất cũng như tốc độ OCR.

EnhanceResolution là một cài đặt sẽ tự động phát hiện hình ảnh có độ phân giải thấp (dưới 275 dpi) và tự động nâng cấp hình ảnh rồi làm sắc nét tất cả văn bản để thư viện OCR có thể đọc hoàn hảo. Mặc dù bản thân thao tác này tốn thời gian, nhưng nhìn chung, nó làm giảm thời gian tổng thể cho một thao tác OCR trên hình ảnh.

Language IronOCR hỗ trợ 22 gói ngôn ngữ quốc tế và cài đặt ngôn ngữ có thể được sử dụng để chọn một hoặc nhiều ngôn ngữ áp dụng cho hoạt động OCR.

Strategy IronOCR hỗ trợ hai chiến lược. Chúng tôi có thể chọn quét tài liệu nhanh và ít chính xác hơn hoặc sử dụng chiến lược nâng cao sử dụng một số mô hình trí tuệ nhân tạo để tự động cải thiện độ chính xác của văn bản OCR bằng cách xem xét mối quan hệ thống kê của các từ với nhau trong một câu .

ColorSpace là một cài đặt theo đó chúng ta có thể chọn OCR ở thang độ xám hoặc màu. Nói chung, thang độ xám là lựa chọn tốt nhất. Tuy nhiên, đôi khi có văn bản hoặc nền có màu sắc tương tự nhưng rất khác màu, không gian màu đầy đủ sẽ mang lại kết quả tốt hơn.

DetectWhiteTextOnDarkBackgrounds. Nói chung, tất cả các thư viện OCR đều mong đợi thấy văn bản màu đen trên nền trắng. Cài đặt này cho phép IronOCR tự động phát hiện các trang âm bản hoặc các trang tối với văn bản màu trắng và đọc chúng.

InputImageType. Cài đặt này cho phép nhà phát triển hướng dẫn thư viện OCR về việc nó đang xem tài liệu đầy đủ hay một đoạn trích, chẳng hạn như ảnh chụp màn hình.

RotateAndStraighten là một cài đặt nâng cao cho phép IronOCR có khả năng độc đáo để đọc các tài liệu không chỉ xoay mà còn có thể chứa phối cảnh, chẳng hạn như ảnh chụp tài liệu văn bản.

ReadBarcodes là một tính năng hữu ích cho phép IronOCR tự động đọc mã vạch và mã QR trên các trang vì nó cũng đọc văn bản mà không gây thêm gánh nặng thời gian.

Độ đậm của màu. Cài đặt này xác định số lượng bit trên mỗi pixel mà thư viện OCR sẽ sử dụng để xác định độ sâu của màu. Độ sâu màu cao hơn có thể làm tăng chất lượng OCR, nhưng cũng sẽ làm tăng thời gian cần thiết để hoàn thành hoạt động OCR.

126 Gói ngôn ngữ

IronOCR hỗ trợ 126 ngôn ngữ quốc tế thông qua các gói ngôn ngữ được phân phối dưới dạng DLL, có thể tải xuống từ trang web này hoặc cũng từ Trình quản lý gói NuGet .

Các ngôn ngữ bao gồm tiếng Đức, tiếng Pháp, tiếng Anh, tiếng Trung, tiếng Nhật và nhiều ngôn ngữ khác. Các gói ngôn ngữ chuyên biệt tồn tại cho hộ chiếu MRZ, séc MICR, Dữ liệu tài chính, biển số xe và nhiều hơn nữa. Bạn cũng có thể sử dụng bất kỳ tệp ".traineddata" tesseract nào - bao gồm cả những tệp bạn tự tạo.

Ví dụ về ngôn ngữ

Sử dụng các ngôn ngữ OCR khác.

// using IronOcr;
// PM> Install IronOcr.Languages.Arabic

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
input.AddImage("img/arabic.gif");
// Thêm bộ lọc hình ảnh nếu cần
// Trong trường hợp này, ngay cả đầu vào tư duy cũng có chất lượng rất thấp
// IronTesseract có thể đọc được thứ mà Tesseract thông thường không thể.

var Result = Ocr.Read(input);

// Bảng điều khiển không thể in tiếng Ả Rập trên Windows một cách dễ dàng.
// Thay vào đó, hãy lưu vào đĩa.
Result.SaveAsTextFile("arabic.txt");
}
// using IronOcr;
// PM> Install IronOcr.Languages.Arabic

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
input.AddImage("img/arabic.gif");
// Thêm bộ lọc hình ảnh nếu cần
// Trong trường hợp này, ngay cả đầu vào tư duy cũng có chất lượng rất thấp
// IronTesseract có thể đọc được thứ mà Tesseract thông thường không thể.

var Result = Ocr.Read(input);

// Bảng điều khiển không thể in tiếng Ả Rập trên Windows một cách dễ dàng.
// Thay vào đó, hãy lưu vào đĩa.
Result.SaveAsTextFile("arabic.txt");
}
' using IronOcr;
' PM> Install IronOcr.Languages.Arabic

Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Arabic

Using input = New OcrInput()
input.AddImage("img/arabic.gif")
' Thêm bộ lọc hình ảnh nếu cần
' Trong trường hợp này, ngay cả đầu vào tư duy cũng có chất lượng rất thấp
' IronTesseract có thể đọc được thứ mà Tesseract thông thường không thể.

Dim Result = Ocr.Read(input)

' Bảng điều khiển không thể in tiếng Ả Rập trên Windows một cách dễ dàng.
' Thay vào đó, hãy lưu vào đĩa.
Result.SaveAsTextFile("arabic.txt")
End Using
VB   C#

Ví dụ về nhiều ngôn ngữ

Cũng có thể OCR bằng nhiều ngôn ngữ cùng một lúc. Điều này thực sự có thể giúp lấy siêu dữ liệu và url ngôn ngữ tiếng Anh trong các tài liệu Unicode.

// using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Vietnamese);

// Chúng tôi có thể thêm bất kỳ số ngôn ngữ nào

using (var input = new OcrInput())
{
input.Add("multi - language.pdf");
var Result = Ocr.Read(input);
Result.SaveAsTextFile("results.txt");
}
// using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Vietnamese);

// Chúng tôi có thể thêm bất kỳ số ngôn ngữ nào

using (var input = new OcrInput())
{
input.Add("multi - language.pdf");
var Result = Ocr.Read(input);
Result.SaveAsTextFile("results.txt");
}
' using IronOcr;
' PM> Install IronOcr.Languages.ChineseSimplified

Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.ChineseSimplified
Ocr.AddSecondaryLanguage(OcrLanguage.Vietnamese)

' Chúng tôi có thể thêm bất kỳ số ngôn ngữ nào

Using input = New OcrInput()
input.Add("multi - language.pdf")
Dim Result = Ocr.Read(input)
Result.SaveAsTextFile("results.txt")
End Using
VB   C#

Đối tượng kết quả OCR chi tiết

IronOCR trả về một đối tượng kết quả OCR cho mỗi hoạt động OCR. Nói chung, các nhà phát triển chỉ sử dụng thuộc tính văn bản của đối tượng này để quét văn bản từ hình ảnh. Tuy nhiên, kết quả OCR DOM cao cấp hơn nhiều so với kết quả này.

using IronOcr;
using System.Drawing; //Thêm tham chiếu hội

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Quan trọng

using (var Input = new OcrInput(@"images\sample.tiff"))
{
OcrResult Result = Ocr.Read(Input);
var Pages = Result.Pages;
var Words = Pages[0].Words;
var Barcodes = Result.Barcodes;
// Khám phá tại đây để tìm một API lớn, chi tiết:
// - Trang, Khối, Paraphaphs, Dòng, Từ, Ký tự
// - Xuất hình ảnh, tọa độ phông chữ, dữ liệu thống kê
}
using IronOcr;
using System.Drawing; //Thêm tham chiếu hội

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Vietnamese;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!Quan trọng

using (var Input = new OcrInput(@"images\sample.tiff"))
{
OcrResult Result = Ocr.Read(Input);
var Pages = Result.Pages;
var Words = Pages[0].Words;
var Barcodes = Result.Barcodes;
// Khám phá tại đây để tìm một API lớn, chi tiết:
// - Trang, Khối, Paraphaphs, Dòng, Từ, Ký tự
// - Xuất hình ảnh, tọa độ phông chữ, dữ liệu thống kê
}
Imports IronOcr
Imports System.Drawing 'Thêm tham chiếu hội

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Vietnamese
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
Ocr.Configuration.ReadBarCodes = True '!Quan trọng

Using Input = New OcrInput("images\sample.tiff")
Dim Result As OcrResult = Ocr.Read(Input)
Dim Pages = Result.Pages
Dim Words = Pages(0).Words
Dim Barcodes = Result.Barcodes
' Khám phá tại đây để tìm một API lớn, chi tiết:
' - Trang, Khối, Paraphaphs, Dòng, Từ, Ký tự
' - Xuất hình ảnh, tọa độ phông chữ, dữ liệu thống kê
End Using
VB   C#

Hiệu suất

IronOCR hoạt động hiệu quả mà không cần điều chỉnh hiệu suất hoặc sửa đổi nhiều hình ảnh đầu vào.

Tốc độ cực nhanh: IronOcr.2020 + nhanh hơn tới 10 lần và ít lỗi hơn 250% so với các bản dựng trước.

Tìm hiểu thêm

Để tìm hiểu thêm về OCR trong C #, VB, F # hoặc bất kỳ ngôn ngữ .NET nào khác, vui lòng đọc hướng dẫn cộng đồng của chúng tôi , những hướng dẫn này cung cấp các ví dụ thực tế về cách IronOCR có thể được sử dụng và có thể cho thấy các sắc thái về cách tận dụng tối đa thư viện này.

Tham chiếu đối tượng đầy đủ cho các nhà phát triển .NET cũng có sẵn.