Jak odczytywać określone dokumenty przy użyciu OCR w języku C#

How to Read Specialized Documents with C# and IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

Dokładne odczytanie specyficznych dokumentów takich jak standardowe dokumenty tekstowe, tablice rejestracyjne, paszporty i zdjęcia za pomocą jednej ogólnej metody jest bardzo trudne. Wyzwania te wynikają z różnorodnych formatów, układów i treści każdego typu dokumentu, a także z wariacji w jakości obrazu, zniekształceniach i specjalistycznych treściach. Dodatkowo, osiągnięcie kontekstualnego zrozumienia i zbalansowanie wydajności i efektywności staje się bardziej złożone przy szerszym zakresie typów dokumentów.

IronOCR wprowadza specyficzne metody wykonywania OCR na konkretnych dokumentach takich jak standardowe dokumenty tekstowe, tablice rejestracyjne, paszporty i zdjęcia, aby osiągnąć optymalną dokładność i wydajność.

Szybki start: przeczytaj paszport jednym wierszem

Użyj rozszerzenia ReadPassport IronOCR, aby wyodrębnić wszystkie kluczowe dane paszportowe przy minimalnej konfiguracji. Przy użyciu zaledwie jednego wiersza kodu — o ile masz zainstalowany IronOCR i AdvancedScan — otrzymasz uporządkowane dane wynikowe, takie jak imiona, numer paszportu, kraj i inne, szybko i bez wysiłku.

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr
  2. Skopiuj i uruchom ten fragment kodu.

    var result = new IronTesseract().ReadPassport(new OcrInput().LoadImage("passport.jpg"));
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


O pakiecie

Metody ReadLicensePlate, ReadPassport, ReadPhoto oraz ReadScreenShot są metodami rozszerzenia dla podstawowego pakietu IronOCR i wymagają zainstalowania pakietu IronOcr.Extensions.AdvancedScan.

Metody działają z konfiguracjami silnika OCR, takimi jak czarne i białe listy. Obsługiwane są wiele języków, w tym chiński, japoński, koreański i alfabet łaciński, we wszystkich metodach za wyjątkiem ReadPassport. Należy pamiętać, że każdy język wymaga dodatkowego pakietu językowego, IronOcr.Languages.

Korzystanie z zaawansowanego skanowania w środowisku .NET Framework wymaga, aby projekt działał na architekturze x64. Aby to osiągnąć, przejdź do konfiguracji projektu i odznacz opcję "Preferuj 32-bit". Dowiedz się więcej w poniższym przewodniku rozwiązywania problemów: "Zaawansowane skanowanie w .NET Framework."

Przykład odczytu dokumentu

Metoda ReadDocument to solidna metoda czytania dokumentów, która specjalizuje się w skanowanych dokumentach lub zdjęciach dokumentów papierowych zawierających dużo tekstu. Konfiguracja PageSegmentationMode jest bardzo ważna w odczytywaniu dokumentów tekstowych o różnych układach.

Na przykład typy SingleBlock i SparseText mogą pobierać wiele informacji z układu tabeli. Dzieje się tak, ponieważ SingleBlock zakłada, że tekst pozostaje jako blok, podczas gdy SparseText zakłada, że tekst jest rozproszony po całym dokumencie.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-document.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

// Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock;

using var input = new OcrInput();

input.LoadPdf("Five.pdf");

// Perform OCR
OcrResult result = ocr.ReadDocument(input);

Console.WriteLine(result.Text);
Imports IronOcr
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

' Configure OCR engine
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleBlock

Dim input = New OcrInput()

input.LoadPdf("Five.pdf")

' Perform OCR
Dim result As OcrResult = ocr.ReadDocument(input)

Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

Poniższe metody są metodami rozszerzającymi podstawowy pakiet IronOCR i wymagają zainstalowania pakietu IronOcr.Extensions.AdvancedScan.

Przykład odczytu tablic rejestracyjnych

Metoda ReadLicensePlate jest zoptymalizowana do odczytywania tablic rejestracyjnych ze zdjęć. Specjalne informacje zwracane przez tę metodę to właściwość Licenseplate, która zawiera informacje o lokalizacji tablicy rejestracyjnej w dostarczonym dokumencie.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-license-plate.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputLicensePlate = new OcrInput();

inputLicensePlate.LoadImage("LicensePlate.jpeg");

// Perform OCR
OcrLicensePlateResult result = ocr.ReadLicensePlate(inputLicensePlate);

// Retrieve license plate coordinates
Rectangle rectangle = result.Licenseplate;

// Retrieve license plate value
string output = result.Text;
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputLicensePlate = New OcrInput()

inputLicensePlate.LoadImage("LicensePlate.jpeg")

' Perform OCR
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(inputLicensePlate)

' Retrieve license plate coordinates
Dim rectangle As Rectangle = result.Licenseplate

' Retrieve license plate value
Dim output As String = result.Text
$vbLabelText   $csharpLabel

Przykład odczytu paszportu

Metoda ReadPassport jest zoptymalizowana do odczytywania i wyodrębnia informacji z paszportów poprzez skanowanie treści strefy maszynowo czytelnej (MRZ). MRZ to specjalnie zdefiniowana strefa w oficjalnych dokumentach, takich jak paszporty, karty identyfikacyjne i wizy. MRZ zwykle zawiera niezbędne osobiste informacje, takie jak imię posiadacza, data urodzenia, narodowość i numer dokumentu. Obecnie ta metoda obsługuje tylko język angielski.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-passport.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPassport = new OcrInput();

inputPassport.LoadImage("Passport.jpg");

// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);

// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
Imports IronOcr
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputPassport = New OcrInput()

inputPassport.LoadImage("Passport.jpg")

' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)

' Output passport information
Console.WriteLine(result.PassportInfo.GivenNames)
Console.WriteLine(result.PassportInfo.Country)
Console.WriteLine(result.PassportInfo.PassportNumber)
Console.WriteLine(result.PassportInfo.Surname)
Console.WriteLine(result.PassportInfo.DateOfBirth)
Console.WriteLine(result.PassportInfo.DateOfExpiry)
$vbLabelText   $csharpLabel

Wynik

Odczytaj paszport

Proszę upewnić się, że dokument zawiera tylko obraz paszportu. Każdy tekst na nagłówku i stopce może dezorientować metodę i skutkować nieoczekiwanym wynikiem.

Przykład odczytu zdjęcia

Metoda ReadPhoto jest zoptymalizowana do odczytywania obrazów zawierających trudny do odczytania tekst. Metoda ta zwraca właściwość TextRegions, która zawiera przydatne informacje o wykrytym tekście, takie jak Region, TextInRegion i FrameNumber.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-photo.cs
using IronOcr;
using IronSoftware.Drawing;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("photo.tif", 2);

// Perform OCR
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);

// index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
string textinregion = result.TextRegions[0].TextInRegion;
Rectangle region = result.TextRegions[0].Region;
Imports IronOcr
Imports IronSoftware.Drawing

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("photo.tif", 2)

' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)

' index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).PageNumber
Dim textinregion As String = result.TextRegions(0).TextInRegion
Dim region As Rectangle = result.TextRegions(0).Region
$vbLabelText   $csharpLabel

Przykład odczytu zrzutów ekranowych

Metoda ReadScreenShot jest zoptymalizowana do odczytywania zrzutów ekranu zawierających trudny do odczytania tekst. Podobnie jak metoda ReadPhoto, zwraca również właściwość TextRegions.

:path=/static-assets/ocr/content-code-examples/how-to/read-specific-document-screenshot.cs
}
using IronOcr;
using System;
using System.Linq;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputScreenshot = new OcrInput();
inputScreenshot.LoadImage("screenshot.png");

// Perform OCR
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);

// Output screenshoot information
Console.WriteLine(result.Text);
Console.WriteLine(result.TextRegions.First().Region.X);
Console.WriteLine(result.TextRegions.Last().Region.Width);
Console.WriteLine(result.Confidence);
}
Imports IronOcr
Imports System
Imports System.Linq

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputScreenshot = New OcrInput()
inputScreenshot.LoadImage("screenshot.png")

' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)

' Output screenshoot information
Console.WriteLine(result.Text)
Console.WriteLine(result.TextRegions.First().Region.X)
Console.WriteLine(result.TextRegions.Last().Region.Width)
Console.WriteLine(result.Confidence)
}
$vbLabelText   $csharpLabel

Często Zadawane Pytania

Jak mogę czytać tablice rejestracyjne za pomocą OCR w C#?

Możesz użyć metody ReadLicensePlate dostarczanej przez IronOCR, aby dokładnie czytać tablice rejestracyjne z zdjęć. Ta metoda zwraca tekst tablicy rejestracyjnej i szczegóły jej lokalizacji.

Jaki jest najlepszy sposób na wyodrębnienie informacji z zdjęć paszportów?

Metoda ReadPassport IronOCR jest zaprojektowana do skanowania strefy maszynowo czytelnej (MRZ) w zdjęciach paszportów, wyodrębniając podstawowe informacje, takie jak imię i nazwisko, data urodzenia, i numer dokumentu.

Czy IronOCR potrafi czytać tekst ze zdjęć z trudnym tekstem?

Tak, metoda ReadPhoto w IronOCR jest zoptymalizowana do czytania obrazów z trudnymi do odczytania tekstami, dostarczając szczegółowe dane o wykrytym tekście i jego regionach.

Czy można użyć IronOCR do czytania tekstu z zrzutów ekranu?

Zdecydowanie, metoda ReadScreenShot IronOCR jest specjalnie zoptymalizowana do przetwarzania tekstu w zrzutach ekranu i dostarcza szczegółowych informacji na temat regionu tekstowego.

Jak mogę poprawić dokładność OCR dla dokumentów o złożonych układach?

Aby zwiększyć dokładność OCR dla złożonych układów dokumentów, skonfiguruj PageSegmentationMode w IronOCR. Opcje takie jak SingleBlock i SparseText są szczególnie przydatne do wyodrębniania informacji z układów tabel.

Co zrobić, jeśli zaawansowane funkcje skanowania IronOCR nie działają w moim projekcie .NET Framework?

Upewnij się, że twój projekt jest ustawiony do działania na architekturze x64 przez odznaczenie opcji „Prefer 32-bit” w ustawieniach projektu, aby rozwiązać problemy z zaawansowanymi funkcjami skanowania w IronOCR na .NET Framework.

Czy w IronOCR istnieją jakieś ograniczenia wsparcia językowego?

IronOCR obsługuje wiele języków, w tym chiński, japoński, koreański i łaciński alfabet. Jednak metoda ReadPassport obecnie obsługuje tylko dokumenty w języku angielskim.

Czego potrzebuję do korzystania z zaawansowanych funkcji skanowania w IronOCR?

Aby korzystać z zaawansowanych funkcji skanowania w IronOCR, wymagany jest pakiet IronOcr.Extensions.AdvancedScan, dostępny wyłącznie w systemie Windows.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 6,151,372 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronOcr
uruchom próbkę obserwuj, jak twój obraz staje się tekstem z możliwością wyszukiwania.