How to Read Specialized Documents with C# and IronOCR
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. Za pomocą zaledwie jednej linii kodu — zakładając, że zainstalowałeś IronOCR i AdvancedScan — szybko i bez wysiłku uzyskasz ustrukturyzowane dane wynikowe, takie jak imiona i nazwiska, numery paszportów, kraje i inne.
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
var result = new IronTesseract().ReadPassport(new OcrInput().LoadImage("passport.jpg")); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do odczytu tablic rejestracyjnych, paszportów i zdjęć
- Przygotuj obraz i dokument PDF do OCR
- Ustaw metodę
ReadLicensePlate, aby odczytać tablicę rejestracyjną - Ustaw metodę
ReadPassport, aby pobrać informacje z paszportu - Leverage the
ReadPhotoand `ReadScreenShot` methods to read images that contain hard-to-read text
O pakiecie
Metody ReadLicensePlate, ReadPassport, ReadPhoto i ReadScreenShot są metodami rozszerzeń do podstawowego pakietu IronOCR i wymagają zainstalowania pakietu IronOcr.Extensions.AdvancedScan.
Metody te działają z konfiguracjami silnika OCR, takimi jak czarna lista i biała lista. Wszystkie metody, z wyjątkiem metody ReadPassport, obsługują wiele języków, w tym chiński, japoński, koreański i alfabet łaciński. 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 odczytu dokumentów, specjalizująca 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)
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 pod kątem 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
Przykład odczytu paszportu
Metoda ReadPassport jest zoptymalizowana pod kątem odczytu i wyodrębnia informacje paszportowe ze zdjęć paszportowych poprzez skanowanie zawartości strefy nadającej się do odczytu maszynowego (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)
Wynik
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 pod kątem odczytu 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
Przykład odczytu zrzutów ekranowych
Metoda ReadScreenShot jest zoptymalizowana pod kątem odczytu 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)
}
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.

