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 szczegóły paszportu przy minimalnej konfiguracji. Wystarczy jeden wiersz kodu — zakładając, że zainstalowano IronOCR i AdvancedScan — aby szybko i bez wysiłku uzyskać strukturalne dane wynikowe jak imiona, numer paszportu, kraj i więcej.

  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 i ReadScreenShot są metodami rozszerzającymi podstawowy pakiet IronOCR i wymagają zainstalowania pakietu IronOcr.Extensions.AdvancedScan.

Metody te działają z konfiguracjami silnika OCR, takimi jak czarna i biała lista. Wiele języków, w tym chiński, japoński, koreański i alfabet łaciński, jest obsługiwanych we wszystkich metodach, z wyjątkiem metody 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 zeskanowanych 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 informacje z paszportu ze zdjęć paszportowych poprzez skanowanie zawartości strefy możliwej do odczytu maszynowo (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 ekranowych 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 odczytać tablice rejestracyjne za pomocą OCR w języku C#?

Możesz użyć metody ReadLicensePlate udostępnionej przez IronOCR, aby dokładnie odczytać tablice rejestracyjne ze zdjęć. Metoda ta zwraca tekst tablicy rejestracyjnej oraz szczegóły dotyczące jej lokalizacji.

Jaki jest najlepszy sposób na wyodrębnienie informacji ze zdjęć paszportowych?

Metoda ReadPassport biblioteki IronOCR służy do skanowania strefy rozpoznawalnej maszynowo (MRZ) na zdjęciach paszportowych w celu wyodrębnienia kluczowych informacji, takich jak imię i nazwisko, data urodzenia oraz numer dokumentu.

Czy IronOCR potrafi odczytać tekst ze zdjęć, na których tekst jest trudny do odczytania?

Tak, metoda ReadPhoto w IronOCR jest zoptymalizowana pod kątem odczytu obrazów zawierających trudny do odczytania tekst, dostarczając szczegółowe dane na temat wykrytego tekstu i jego obszarów.

Czy można używać IronOCR do odczytywania tekstu ze zrzutów ekranu?

Oczywiście, metoda ReadScreenShot w IronOCR jest specjalnie zoptymalizowana do przetwarzania tekstu na zrzutach ekranu i zapewnia szczegółowe informacje o obszarach tekstowych.

Jak mogę poprawić dokładność OCR w przypadku dokumentów o złożonym układzie?

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

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

Upewnij się, że projekt jest skonfigurowany do działania w architekturze x64, odznaczając opcję „Preferuj 32-bit” w ustawieniach projektu, aby rozwiązać problemy z zaawansowanymi funkcjami skanowania w IronOCR na platformie .NET Framework.

Czy w IronOCR istnieją jakieś ograniczenia dotyczące obsługi języków?

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

Czego potrzebuję, aby korzystać z zaawansowanych funkcji skanowania w IronOCR?

Aby korzystać z zaawansowanych funkcji skanowania w IronOCR, wymagany jest pakiet IronOcr.Extensions.AdvancedScan, który jest 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 5,571,678 | Wersja: 2026.4 just released
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.