Thai Alphabet OCR ในภาษา C#และ.NET

เวอร์ชันอื่น ๆ ของเอกสารนี้:

IronOCR เป็นส่วนประกอบซอฟต์แวร์ C#ที่ช่วยให้ผู้เข้ารหัส. NET สามารถอ่านข้อความจากรูปภาพและเอกสาร PDF ใน 126 ภาษารวมทั้งตัวอักษรภาษาไทย

เป็นทางแยกขั้นสูงของ Tesseract ซึ่งสร้างขึ้นสำหรับนักพัฒนา. NET โดยเฉพาะและมีประสิทธิภาพเหนือกว่าเอ็นจิ้น Tesseract อื่น ๆ เป็นประจำทั้งในด้านความเร็วและความแม่นยำ

เนื้อหาของ IronOcr.Languages.Thai

แพคเกจนี้ประกอบด้วย 96 OCR ภาษาสำหรับ. NET:

  • ไทย
  • ไทยเบสท์
  • ไทยฟาสต์
  • ThaiAlphabet
  • ThaiAlphabetBest
  • ThaiAlphabetFast

ดาวน์โหลด

Thai Alphabet Language Pack [ไทย]
* Download as ซิป
* Install with
https://www.nuget.org/packages/IronOcr.Languages.Thai/'> NuGet

การติดตั้ง

สิ่งแรกที่เราต้องทำคือติดตั้งแพ็คเกจ Thai Alphabet OCR ในโปรเจ็กต์. NET ของคุณ

PM> Install-Package IronOCR.Languages.Thai

ตัวอย่างรหัส

ตัวอย่างรหัส C#นี้อ่านข้อความตัวอักษรภาษาไทยจากเอกสารรูปภาพหรือ PDF

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

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

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

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

ทำไมต้องเลือก IronOCR

IronOCR เป็นไลบรารีซอฟต์แวร์. NET ที่ติดตั้งง่ายสมบูรณ์และมีเอกสารอย่างดี

เลือก IronOCR เพื่อให้ได้ ความแม่นยำ 99.8% + OCR โดยไม่ต้องใช้บริการเว็บภายนอกค่าธรรมเนียมต่อเนื่องหรือส่งเอกสารที่เป็นความลับทางอินเทอร์เน็ต

ทำไมนักพัฒนา C#ถึงเลือก IronOCR กับ Vanilla Tesseract:

  • ติดตั้งเป็น DLL เดียวหรือ NuGet
  • รวมถึงเครื่องยนต์ Tesseract 5, 4 และ 3 นอกกรอบ
  • ความแม่นยำ 99.8% เหนือกว่า Tesseract ปกติอย่างเห็นได้ชัด
  • ความเร็วที่เห็นได้ชัดและ MultiThreading
  • รองรับ MVC, WebApp, Desktop, Console & Server Application
  • ไม่มีรหัส Exes หรือ C ++ ที่จะใช้งานได้
  • รองรับ PDF OCR เต็มรูปแบบ
  • ในการดำเนินการ OCR เกือบทุกไฟล์รูปภาพหรือ PDF
  • รองรับ.NET Core, Standard และ FrameWork เต็มรูปแบบ
  • ปรับใช้บน Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • อ่านบาร์โค้ดและรหัส QR
  • ส่งออก OCR เป็น XHTML
  • ส่งออก OCR ไปยังเอกสาร PDF ที่ค้นหาได้
  • รองรับมัลติเธรด
  • ภาษาสากล 126 ภาษาทั้งหมดจัดการผ่านไฟล์ NuGet หรือ OcrData
  • แยกรูปภาพพิกัดสถิติและแบบอักษร ไม่ใช่แค่ข้อความ
  • สามารถใช้เพื่อแจกจ่าย Tesseract OCR ใหม่ภายในแอปพลิเคชันเชิงพาณิชย์และที่เป็นกรรมสิทธิ์

IronOCR จะส่องสว่างเมื่อทำงานกับภาพในโลกแห่งความเป็นจริงและเอกสารที่ไม่สมบูรณ์เช่นภาพถ่ายหรือการสแกนที่มีความละเอียดต่ำซึ่งอาจมีสัญญาณรบกวนดิจิทัลหรือความไม่สมบูรณ์

ไลบรารี OCR ฟรี อื่น ๆ สำหรับแพลตฟอร์ม. NET เช่น. net tesseract API และบริการเว็บอื่น ๆ จะทำงานได้ไม่ดีนักในกรณีการใช้งานจริงเหล่านี้

OCR พร้อม Tesseract 5 - เริ่มการเข้ารหัสใน C #

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่าการอ่านข้อความจากรูปภาพนั้นง่ายเพียงใดโดยใช้ C#หรือ VB .NET

หนึ่งในสายการบิน

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 ที่กำหนดค่าได้

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

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... คุณสามารถเพิ่มรูปภาพจำนวนเท่าใดก็ได้
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
// PM> Install-Package IronOCR.Languages.Thai
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;
using (var Input = new OcrInput()){
Input.AddImage("images/sample.jpeg")
//... คุณสามารถเพิ่มรูปภาพจำนวนเท่าใดก็ได้
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
' PM> Install-Package IronOCR.Languages.Thai
Imports IronOcr

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Thai
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

วิธีเดียวกันนี้สามารถใช้ในการแยกข้อความจากเอกสาร PDF ใด ๆ

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// นอกจากนี้เรายังสามารถเลือกหมายเลขหน้า PDF ที่ต้องการเป็น OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 หน้าสำหรับทุกหน้าของ PDF
}
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// นอกจากนี้เรายังสามารถเลือกหมายเลขหน้า PDF ที่ต้องการเป็น OCR

var Result = Ocr.Read(input);

Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 หน้าสำหรับทุกหน้าของ PDF
}
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Thai
Using input = New OcrInput()
input.AddPdf("example.pdf", "password")
' นอกจากนี้เรายังสามารถเลือกหมายเลขหน้า PDF ที่ต้องการเป็น OCR

Dim Result = Ocr.Read(input)

Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
' 1 หน้าสำหรับทุกหน้าของ PDF
End Using
VB   C#

OCR สำหรับ MultiPage TIFF

OCR อ่านรูปแบบไฟล์ TIFF รวมถึงเอกสารหลายหน้า TIFF ยังสามารถแปลงเป็นไฟล์ PDF ได้โดยตรงพร้อมข้อความที่ค้นหาได้

using IronOcr;

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

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.Thai;

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.Thai

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

บาร์โค้ดและ QR

คุณลักษณะเฉพาะของ IronOCR คือสามารถอ่านบาร์โค้ดและรหัส QR จากเอกสารในขณะที่กำลังสแกนหาข้อความ อินสแตนซ์ของ OcrResult.OcrBarcode Class จะให้ข้อมูลโดยละเอียดแก่นักพัฒนาเกี่ยวกับบาร์โค้ดที่สแกนแต่ละอัน

// 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);
// คุณสมบัติประเภทและตำแหน่งที่ตั้งยังเปิดเผย
}
}
// 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);
// คุณสมบัติประเภทและตำแหน่งที่ตั้งยังเปิดเผย
}
}
' 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)
' คุณสมบัติประเภทและตำแหน่งที่ตั้งยังเปิดเผย
Next Barcode
End Using
VB   C#

OCR ในพื้นที่เฉพาะของภาพ

วิธีการสแกนและการอ่านทั้งหมดของ IronOCR ให้ความสามารถในการระบุว่าส่วนใดของหน้าหรือหน้าที่เราต้องการอ่านข้อความ สิ่งนี้มีประโยชน์มากเมื่อเราดูรูปแบบมาตรฐานและสามารถประหยัดเวลาได้มากและปรับปรุงประสิทธิภาพ

ในการใช้พื้นที่ครอบตัดเราจะต้องเพิ่มการอ้างอิงระบบไปยัง System.Drawing เพื่อให้เราสามารถใช้วัตถุ System.Drawing.Rectangle

using IronOcr;

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// ขนาดอยู่ในหน่วยพิกเซล

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

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

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

using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// ขนาดอยู่ในหน่วยพิกเซล

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

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

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

Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
	.X = 215,
	.Y = 1250,
	.Height = 280,
	.Width = 1335
}
' ขนาดอยู่ในหน่วยพิกเซล

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

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

OCR สำหรับการสแกนคุณภาพต่ำ

คลาส OcrInput IronOCR สามารถแก้ไขการสแกนที่ Tesseract ปกติไม่สามารถอ่านได้

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

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // แก้ไขสัญญาณรบกวนดิจิตอลและการสแกนที่ไม่ดี
Input.Deskew(); // แก้ไขการหมุนและมุมมอง
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // แก้ไขสัญญาณรบกวนดิจิตอลและการสแกนที่ไม่ดี
Input.Deskew(); // แก้ไขการหมุนและมุมมอง
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Thai

Using Input = New OcrInput("img\Potter.LowQuality.tiff")
Input.DeNoise() ' แก้ไขสัญญาณรบกวนดิจิตอลและการสแกนที่ไม่ดี
Input.Deskew() ' แก้ไขการหมุนและมุมมอง
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

ส่งออกผลลัพธ์ OCR เป็น PDF ที่ค้นหาได้

รูปภาพเป็น PDF พร้อมสตริงข้อความที่คัดลอกได้ สามารถจัดทำดัชนีโดยเครื่องมือค้นหาและฐานข้อมูล

using IronOcr;

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

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.Thai;

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.Thai

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 เพื่อการแปลง PDF ที่ค้นหาได้

แปลงเอกสาร TIFF (หรือกลุ่มไฟล์ภาพใด ๆ ) ให้เป็น PDF ที่ค้นหาได้โดยตรงซึ่งสามารถสร้างดัชนีได้โดยอินทราเน็ตเว็บไซต์และเครื่องมือค้นหาของ Google

using IronOcr;

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

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.Thai;

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.Thai

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

ส่งออกผลลัพธ์ OCR เป็น HTML

การแปลง OCR Image เป็น XHTML

using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;
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.Thai;
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.Thai
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#

ตัวกรองการปรับปรุงภาพ OCR

IronOCR มีตัวกรองเฉพาะสำหรับ OcrInput เพื่อปรับปรุงประสิทธิภาพของ OCR

ตัวอย่างรหัสการปรับปรุงภาพ

ทำให้ภาพอินพุต OCR มีคุณภาพสูงขึ้นเพื่อให้ได้ผลลัพธ์ OCR ที่ดีขึ้นและเร็วขึ้น

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

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // แก้ไขสัญญาณรบกวนดิจิตอลและการสแกนที่ไม่ดี
Input.Deskew(); // แก้ไขการหมุนและมุมมอง
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // แก้ไขสัญญาณรบกวนดิจิตอลและการสแกนที่ไม่ดี
Input.Deskew(); // แก้ไขการหมุนและมุมมอง
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Thai

Using Input = New OcrInput("LowQuality.jpeg")
Input.DeNoise() ' แก้ไขสัญญาณรบกวนดิจิตอลและการสแกนที่ไม่ดี
Input.Deskew() ' แก้ไขการหมุนและมุมมอง
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
VB   C#

รายการตัวกรองภาพ OCR

ตัวกรองอินพุตเพื่อเพิ่มประสิทธิภาพ OCR ซึ่งติดตั้งไว้ใน IronOCR ได้แก่ :

  • OcrInput.Rotate (องศาสองเท่า) - หมุนภาพตามจำนวนองศาตามเข็มนาฬิกา สำหรับทวนเข็มนาฬิกาให้ใช้จำนวนลบ
  • OcrInput.Binarize () - ฟิลเตอร์ภาพนี้จะเปลี่ยนทุกพิกเซลเป็นสีดำหรือสีขาวโดยไม่มีพื้นกลาง อาจปรับปรุงประสิทธิภาพของ OCR กรณีที่มีความคมชัดของข้อความกับพื้นหลังต่ำมาก
  • OcrInput ToGrayScale () - ฟิลเตอร์ภาพนี้จะเปลี่ยนทุกพิกเซลให้อยู่ในเฉดสีเทา ไม่น่าจะปรับปรุงความแม่นยำของ OCR แต่อาจเพิ่มความเร็วได้
  • OcrInput.Contrast () - เพิ่มคอนทราสต์โดยอัตโนมัติ ตัวกรองนี้มักจะปรับปรุงความเร็วและความแม่นยำของ OCR ในการสแกนคอนทราสต์ต่ำ
  • OcrInput.DeNoise () - ลบสัญญาณรบกวนดิจิตอล ควรใช้ตัวกรองนี้เฉพาะในกรณีที่คาดว่าจะมีเสียงดัง
  • OcrInput.Invert () - สลับสีทุกสี เช่นขาวกลายเป็นดำ: ดำกลายเป็นขาว
  • OcrInput.Dilate () - สัณฐานวิทยาขั้นสูง การขยาย เพิ่มพิกเซลให้กับขอบเขตของวัตถุในภาพ ตรงข้ามเซาะกราว
  • OcrInput.Erode () - สัณฐานวิทยาขั้นสูง การกัดเซาะ จะลบพิกเซลบนขอบเขตวัตถุตรงข้ามกับ Dilate
  • OcrInput.Deskew () - หมุนภาพเพื่อให้อยู่ในตำแหน่งที่ถูกต้องและตั้งฉากกัน สิ่งนี้มีประโยชน์มากสำหรับ OCR เนื่องจากความอดทนของ Tesseract สำหรับการสแกนที่เอียงอาจต่ำถึง 5 องศา
  • OcrInput.DeepCleanBackgroundNoise () - การกำจัดเสียงรบกวนรอบข้างหนัก ใช้ตัวกรองนี้ในกรณีที่ทราบเสียงพื้นหลังของเอกสารมากเท่านั้นเนื่องจากตัวกรองนี้จะเสี่ยงต่อการลดความแม่นยำของ OCR ของเอกสารที่สะอาดและมีราคาแพงมากของ CPU
  • OcrInput.EnhanceResolution - เพิ่มความละเอียดของภาพคุณภาพต่ำ ไม่จำเป็นต้องใช้ตัวกรองนี้บ่อยครั้งเนื่องจาก OcrInput.MinimumDPI และ OcrInput TargetDPI จะตรวจจับและแก้ไขอินพุตที่มีความละเอียดต่ำโดยอัตโนมัติ

ทำความสะอาดพื้นหลัง นี่คือการตั้งค่าที่ค่อนข้างใช้เวลานาน อย่างไรก็ตามช่วยให้ไลบรารีสามารถล้างสัญญาณรบกวนดิจิทัลรอยย่นของกระดาษและความไม่สมบูรณ์อื่น ๆ ภายในภาพดิจิทัลโดยอัตโนมัติซึ่งจะทำให้ไลบรารี OCR อื่นอ่านไม่ได้

EnhanceContrast คือการตั้งค่าที่ทำให้ IronOCR เพิ่มความคมชัดของข้อความกับพื้นหลังของภาพโดยอัตโนมัติเพิ่มความแม่นยำของ OCR และโดยทั่วไปจะเพิ่มประสิทธิภาพและความเร็วของ OCR

EnhanceResolution คือการตั้งค่าที่จะตรวจจับภาพที่มีความละเอียดต่ำโดยอัตโนมัติ (ซึ่งมีความละเอียดต่ำกว่า 275 dpi) และเพิ่มขนาดภาพโดยอัตโนมัติจากนั้นเพิ่มความคมชัดของข้อความทั้งหมดเพื่อให้สามารถอ่านได้อย่างสมบูรณ์แบบโดยไลบรารี OCR แม้ว่าการดำเนินการนี้จะใช้เวลานาน แต่โดยทั่วไปแล้วจะช่วยลดเวลาโดยรวมสำหรับการดำเนินการ OCR บนรูปภาพ

Language IronOCR รองรับชุดภาษาสากล 22 ชุดและสามารถใช้การตั้งค่าภาษาเพื่อเลือกหนึ่งหรือหลายภาษาที่จะใช้สำหรับการดำเนินการ OCR

Strategy IronOCR รองรับสองกลยุทธ์ เราอาจเลือกที่จะสแกนเอกสารที่รวดเร็วและแม่นยำน้อยกว่าหรือใช้กลยุทธ์ขั้นสูงซึ่งใช้แบบจำลองปัญญาประดิษฐ์เพื่อปรับปรุงความถูกต้องของข้อความ OCR โดยอัตโนมัติโดยดูความสัมพันธ์ทางสถิติของคำที่มีต่อกันในประโยค .

ColorSpace คือการตั้งค่าที่เราสามารถเลือกให้ OCR เป็นโทนสีเทาหรือสี โดยทั่วไปสีเทาเป็นตัวเลือกที่ดีที่สุด อย่างไรก็ตามบางครั้งเมื่อมีข้อความหรือพื้นหลังที่มีสีคล้ายกัน แต่มีสีต่างกันมากพื้นที่สีเต็มจะให้ผลลัพธ์ที่ดีกว่า

DetectWhiteTextOnDarkBackgrounds โดยทั่วไปแล้วไลบรารี OCR ทั้งหมดคาดว่าจะเห็นข้อความสีดำบนพื้นหลังสีขาว การตั้งค่านี้ช่วยให้ IronOCR ตรวจจับเชิงลบโดยอัตโนมัติหรือหน้ามืดที่มีข้อความสีขาวและอ่านได้

InputImageType การตั้งค่านี้ช่วยให้นักพัฒนาสามารถแนะนำไลบรารี OCR ได้ว่ากำลังดูเอกสารฉบับเต็มหรือตัวอย่างข้อมูลเช่นภาพหน้าจอ

RotateAndStraighten เป็นการตั้งค่าขั้นสูงที่ช่วยให้ IronOCR มีความสามารถพิเศษในการอ่านเอกสารที่ไม่เพียง แต่หมุนได้ แต่อาจมีมุมมองเช่นภาพถ่ายของเอกสารข้อความ

ReadBarcodes เป็นคุณสมบัติที่มีประโยชน์ซึ่งช่วยให้ IronOCR สามารถอ่านบาร์โค้ดและรหัส QR บนหน้าได้โดยอัตโนมัติในขณะที่อ่านข้อความโดยไม่ต้องเพิ่มภาระเวลาเพิ่มเติม

ความลึกของสี การตั้งค่านี้กำหนดจำนวนบิตต่อพิกเซลที่ไลบรารี OCR จะใช้เพื่อกำหนดความลึกของสี ความลึกของสีที่สูงขึ้นอาจเพิ่มคุณภาพของ OCR แต่จะเพิ่มเวลาในการดำเนินการ OCR ให้เสร็จสมบูรณ์ด้วย

126 ชุดภาษา

IronOCR รองรับ ภาษาสากล 126 ภาษา ผ่านชุดภาษาซึ่งแจกจ่ายเป็น DLL ซึ่งสามารถ ดาวน์โหลดได้จากเว็บไซต์นี้ หรือจาก NuGet Package Manager

ภาษาต่างๆ ได้แก่ เยอรมันฝรั่งเศสอังกฤษจีนญี่ปุ่นและอื่น ๆ อีกมากมาย มีชุดภาษาผู้เชี่ยวชาญสำหรับหนังสือเดินทาง MRZ, การตรวจสอบ MICR, ข้อมูลทางการเงิน, ป้ายทะเบียนและอื่น ๆ อีกมากมาย คุณยังสามารถใช้ไฟล์ ".traineddata" ของ tesseract รวมทั้งไฟล์ที่คุณสร้างขึ้นเอง

ตัวอย่างภาษา

การใช้ภาษา OCR อื่น ๆ

// 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");
// เพิ่มฟิลเตอร์ภาพหากจำเป็น
// ในกรณีนี้อินพุตความคิดแม้จะมีคุณภาพต่ำมาก
// IronTesseract สามารถอ่านสิ่งที่ Tesseract ธรรมดาไม่สามารถทำได้

var Result = Ocr.Read(input);

// Console ไม่สามารถพิมพ์ภาษาอาหรับบน Windows ได้อย่างง่ายดาย
// มาบันทึกลงดิสก์แทน
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");
// เพิ่มฟิลเตอร์ภาพหากจำเป็น
// ในกรณีนี้อินพุตความคิดแม้จะมีคุณภาพต่ำมาก
// IronTesseract สามารถอ่านสิ่งที่ Tesseract ธรรมดาไม่สามารถทำได้

var Result = Ocr.Read(input);

// Console ไม่สามารถพิมพ์ภาษาอาหรับบน Windows ได้อย่างง่ายดาย
// มาบันทึกลงดิสก์แทน
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")
' เพิ่มฟิลเตอร์ภาพหากจำเป็น
' ในกรณีนี้อินพุตความคิดแม้จะมีคุณภาพต่ำมาก
' IronTesseract สามารถอ่านสิ่งที่ Tesseract ธรรมดาไม่สามารถทำได้

Dim Result = Ocr.Read(input)

' Console ไม่สามารถพิมพ์ภาษาอาหรับบน Windows ได้อย่างง่ายดาย
' มาบันทึกลงดิสก์แทน
Result.SaveAsTextFile("arabic.txt")
End Using
VB   C#

ตัวอย่างหลายภาษา

นอกจากนี้ยังสามารถ OCR โดยใช้หลายภาษาในเวลาเดียวกัน สิ่งนี้สามารถช่วยรับข้อมูลเมตาและ URL ภาษาอังกฤษในเอกสาร Unicode ได้จริงๆ

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

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

// เราสามารถเพิ่มภาษาใดก็ได้

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.Thai);

// เราสามารถเพิ่มภาษาใดก็ได้

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.Thai)

' เราสามารถเพิ่มภาษาใดก็ได้

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

วัตถุผลลัพธ์ OCR โดยละเอียด

IronOCR ส่งคืนอ็อบเจ็กต์ผลลัพธ์ OCR สำหรับการดำเนินการ OCR แต่ละครั้ง โดยทั่วไปนักพัฒนาจะใช้คุณสมบัติข้อความของวัตถุนี้เพื่อรับข้อความที่สแกนจากรูปภาพเท่านั้น อย่างไรก็ตามผลลัพธ์ของ OCR DOM นั้นก้าวหน้ากว่านี้มาก

using IronOcr;
using System.Drawing; //เพิ่มการอ้างอิงแอสเซมบลี

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!สำคัญ

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;
// สำรวจที่นี่เพื่อค้นหา API ขนาดใหญ่โดยละเอียด:
// - หน้า, บล็อก, พาราพาฟ, เส้น, คำ, ตัวอักษร
// - การส่งออกรูปภาพพิกัดแบบอักษรข้อมูลสถิติ
}
using IronOcr;
using System.Drawing; //เพิ่มการอ้างอิงแอสเซมบลี

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Thai;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!สำคัญ

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;
// สำรวจที่นี่เพื่อค้นหา API ขนาดใหญ่โดยละเอียด:
// - หน้า, บล็อก, พาราพาฟ, เส้น, คำ, ตัวอักษร
// - การส่งออกรูปภาพพิกัดแบบอักษรข้อมูลสถิติ
}
Imports IronOcr
Imports System.Drawing 'เพิ่มการอ้างอิงแอสเซมบลี

Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Thai
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
Ocr.Configuration.ReadBarCodes = True '!สำคัญ

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
' สำรวจที่นี่เพื่อค้นหา API ขนาดใหญ่โดยละเอียด:
' - หน้า, บล็อก, พาราพาฟ, เส้น, คำ, ตัวอักษร
' - การส่งออกรูปภาพพิกัดแบบอักษรข้อมูลสถิติ
End Using
VB   C#

ประสิทธิภาพ

IronOCR ทำงานนอกกรอบโดยไม่จำเป็นต้องปรับแต่งประสิทธิภาพหรือปรับเปลี่ยนภาพอินพุตมากนัก

Speed is Blazing: IronOcr.2020 + เร็วขึ้นสูงสุด 10 เท่าและทำให้เกิดข้อผิดพลาดน้อยกว่ารุ่นก่อนหน้าถึง 250%

เรียนรู้เพิ่มเติม

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ OCR ในภาษา C #, VB, F # หรือภาษา. NET อื่น ๆ โปรด อ่านบทแนะนำชุมชนของเรา ซึ่งให้ตัวอย่างโลกแห่งความเป็นจริงเกี่ยวกับวิธีการใช้งาน IronOCR และอาจแสดงความแตกต่างของวิธีการใช้ประโยชน์สูงสุดจาก ห้องสมุดนี้

นอกจากนี้ยังมี การอ้างอิงออบเจ็กต์ แบบเต็ม สำหรับนักพัฒนา. NET