Jak wykonać OCR tablicy rejestracyjnej w C# (samouczek)
Rozpoznawanie tablic rejestracyjnych stało się niezbędnym narzędziem w wielu branżach, od zarządzania ruchem i systemów parkingowych po egzekwowanie prawa i rozwiązania w zakresie poboru opłat. Wykorzystując technologię optycznego rozpoznawania znaków (OCR), programiści mogą efektywnie wyodrębniać tekst z obrazów, automatyzując proces identyfikacji tablic rejestracyjnych. W tym samouczku pokażemy, jak używać biblioteki IronOCR, potężnej biblioteki OCR w języku C#, do dokładnego odczytywania tablic rejestracyjnych ze zdjęć. Dzięki płynnej integracji z kodem źródłowym OpenCV do zadań związanych z wizją komputerową, IronOCR oferuje solidne rozwiązanie do rozpoznawania tekstu nawet ze złożonych lub zaszumionych źródeł obrazów. Niezależnie od tego, czy pracujesz z czystym obrazem tablicy rejestracyjnej, czy z pełnym zdjęciem pojazdu, ten przewodnik przeprowadzi Cię przez kolejne etapy tworzenia niezawodnego systemu rozpoznawania tablic rejestracyjnych przy użyciu nowoczesnych technik OCR.
Jak korzystać z rozpoznawania tablic rejestracyjnych w języku C
- Zainstaluj bibliotekę C#, aby korzystać z funkcji rozpoznawania tablic rejestracyjnych
- Zaimportuj obraz tablicy rejestracyjnej do nowej instancji
OcrImageInput. - Zastosuj filtry obrazu, aby poprawić ekstrakcję tekstu w języku C#.
- Zwiększ szybkość rozpoznawania poprzez określenie obszaru tablicy rejestracyjnej na zdjęciu.
- PRINT wyodrębniony tekst przy użyciu instancji
OcrLicensePlateResult.
Pierwsze kroki z IronOCR
IronOCR to biblioteka OCR w języku C# oparta na silniku Tesseract OCR, zaprojektowana specjalnie w celu zapewnienia wysokiej dokładności i wydajności w projektach rozpoznawania tekstu w aplikacjach .NET. Idealny do obsługi obrazów z zakłóceniami lub o niskiej jakości, IronOCR zawiera zaawansowane funkcje przetwarzania wstępnego obrazów, takie jak automatyczna redukcja szumów i konwersja do skali szarości, które poprawiają czytelność wyodrębnionego tekstu.
Niektóre z wyróżniających się funkcji IronOCR to:
- Wysoka dokładność OCR: Zoptymalizowany pod kątem różnych języków i czcionek, IronOCR wyróżnia się dokładnością nawet podczas pracy ze złożonym lub zniekształconym tekstem.
- Obsługa obrazów i plików PDF: Potrafi odczytywać tekst z wielu formatów obrazów i plików PDF, dzięki czemu jest wszechstronny w przypadku różnych typów dokumentów.
- Integracja z OpenCV: Dzięki obsłudze OpenCV IronOCR może wykonywać zadania z zakresu widzenia komputerowego, takie jak wykrywanie określonych obszarów tekstu na obrazie, co jest szczególnie przydatne w rozpoznawaniu tablic rejestracyjnych.
- Zaawansowane przetwarzanie wstępne: Obejmuje filtry do konwersji do skali szarości, obracania, prostowania i poprawiania kontrastu w celu poprawy jakości rozpoznawania.
- Elastyczne opcje wprowadzania danych: Obsługuje dokumenty wielostronicowe i regulowane obszary, pozwalając programistom skupić przetwarzanie OCR na wybranych obszarach w celu uzyskania szybszych i bardziej ukierunkowanych wyników.
Dzięki tym możliwościom IronOCR jest potężnym rozwiązaniem do tworzenia aplikacji OCR, które wymagają dokładności, elastyczności i łatwości integracji z innymi narzędziami wizji komputerowej.
Utwórz projekt Visual Studio
Zacznij od otwarcia programu Visual Studio i wybrania opcji "Utwórz nowy projekt". Spowoduje to przejście do strony, na której można wybrać typ projektu, który chcesz zbudować (w naszym przypadku będziemy tworzyć aplikację konsolową). Wybierz żądany typ aplikacji i kliknij "Dalej".

Teraz nadaj nazwę projektowi i wybierz lokalizację, w której zostanie on zapisany.

Na koniec wybierz docelową platformę .NET Framework i kliknij przycisk "Utwórz". Spowoduje to utworzenie projektu, jak pokazano poniżej.

Kolejnym krokiem jest zainstalowanie biblioteki IronOCR, abyśmy mogli rozpocząć przetwarzanie tablic rejestracyjnych.
Instalacja IronOCR
Aby rozpocząć korzystanie z IronOCR w projekcie C#, należy zainstalować pakiet IronOCR z NuGet. IronOCR jest kompatybilny z .NET Framework i .NET Core, co ułatwia integrację z różnymi aplikacjami .NET.
Krok 1: Otwórz konsolę menedżera pakietów
W programie Visual Studio przejdź do menu Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.
Krok 2: Zainstaluj paket IronOCR
Wpisz następujące polecenie w konsoli menedżera pakietów:
Install-Package IronOcr
To polecenie instaluje bibliotekę IronOCR wraz ze wszystkimi zależnościami niezbędnymi do uruchomienia funkcji OCR w projekcie. Ponieważ nasza aplikacja wymaga zaawansowanych funkcji, takich jak rozpoznawanie tablic rejestracyjnych za pomocą wizji komputerowej, można również zainstalować opcjonalny pakiet IronOcr.ComputerVision.Windows w następujący sposób:
Install-Package IronOcr.ComputerVision.Windows
Upewnij się, że masz zainstalowane rozszerzenie IronOcr.Extensions.AdvancedScan, aby móc korzystać z jego potężnej metody ReadLicensePlate:
Install-Package IronOcr.Extensions.AdvancedScan
Alternatywnie można zainstalować pakiety, korzystając z opcji Narzędzia > Menedżer pakietów NuGet > Zarządzaj pakietami NuGet dla rozwiązania i wyszukując potrzebne pakiety:

Konfiguracja kodu
Na koniec musimy dodać niezbędne instrukcje importu i using na początku naszego kodu:
using IronOcr;
using IronOcr;
Imports IronOcr
Odczytywanie tablic rejestracyjnych za pomocą optycznego rozpoznawania znaków
W tej sekcji stworzymy program do odczytu tablic rejestracyjnych przy użyciu IronOCR, silnika OCR Tesseract, który doskonale radzi sobie z wyodrębnianiem tekstu z obrazów. Aby wdrożyć wykrywanie pojazdów, możemy również wykorzystać dodatkowe biblioteki uczenia maszynowego. Warto zauważyć, że IronOCR integruje się z OpenCV, wiodącą biblioteką open source do przetwarzania obrazów, co pozwala nam wykonywać zadania wykrywania obiektów, takie jak identyfikacja pojazdów i tablic rejestracyjnych.
Przykładowy obraz tablicy rejestracyjnej
Będziemy pracować na podstawie następującej licencji:

Przykładowy kod do wykonania OCR na tablicy rejestracyjnej
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrImageInput("licensePlate.jpeg"))
{
// Fixes digital noise and makes the image easier to read
input.DeNoise();
input.ToGrayScale();
// Reads the license plate information and stores it for further use
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
// Saves the license plate text to a string variable
string output = result.Text;
// Outputs the license plate text to the console
Console.WriteLine(output);
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrImageInput("licensePlate.jpeg"))
{
// Fixes digital noise and makes the image easier to read
input.DeNoise();
input.ToGrayScale();
// Reads the license plate information and stores it for further use
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
// Saves the license plate text to a string variable
string output = result.Text;
// Outputs the license plate text to the console
Console.WriteLine(output);
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrImageInput("licensePlate.jpeg")
' Fixes digital noise and makes the image easier to read
input.DeNoise()
input.ToGrayScale()
' Reads the license plate information and stores it for further use
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
' Saves the license plate text to a string variable
Dim output As String = result.Text
' Outputs the license plate text to the console
Console.WriteLine(output)
End Using

Podział kodu:
-
Inicjalizacja:
var ocr = new IronTesseract();tworzy nową instancję klasyIronTesseract, która udostępnia metody do optycznego rozpoznawania znaków (OCR). -
Wprowadzanie obrazu: Instrukcja
usingtworzy nowy obiektOcrImageInputz określonym plikiem obrazu"licensePlate.jpeg". Ten obiekt jest przeznaczony do przechowywania danych obrazu do przetwarzania OCR. -
Wstępne przetwarzanie obrazów:
input.DeNoise();stosuje filtr cyfrowej redukcji szumów w celu poprawy jakości obrazu, ułatwiając silnikowi OCR odczytanie tekstu.input.ToGrayScałe();konwertuje obraz na skalę szarości, co może poprawić dokładność rozpoznawania i szybkość przetwarzania.
-
Rozpoznawanie tablic rejestracyjnych: Wiersz
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);wykorzystuje metodęReadLicensePlatedo analizy przetworzonego obrazu i wyodrębnienia wszelkich wykrytych informacji o tablicach rejestracyjnych, zapisując wyniki w obiekcieOcrLicensePlateResult. -
Przechowywanie wyników: Tekst tablicy rejestracyjnej jest przechowywany w zmiennej typu string
outputpoprzez dostęp doresult.Text, która zawiera rozpoznany tekst z tablicy rejestracyjnej. - Wyjście konsoli: Na koniec
Console.WriteLine(output);PRINTuje wyodrębniony tekst tablicy rejestracyjnej na konsoli w celu weryfikacji.
Skanowanie numerów rejestracyjnych samochodów
Jeśli mamy zdjęcie całego samochodu, a nie tylko tablicy rejestracyjnej, możemy zaznaczyć prostokątny obszar, aby skupić się na obszarze tablicy rejestracyjnej. Możemy użyć klasy System.Drawing.Rectangle, aby zdefiniować ten obszar w pikselach.
Oryginalny obraz
W naszym przykładzie wykorzystamy następujący plik graficzny:

Określając obszar zainteresowań, zwiększamy szybkość przetwarzania i unikamy wyodrębniania zbędnego tekstu.
Kod implementacji
using IronOcr;
using System.Drawing;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
input.LoadImage("CarPlate.jpeg", contentArea);
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
using IronOcr;
using System.Drawing;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
input.LoadImage("CarPlate.jpeg", contentArea);
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System.Drawing
Private ocr = New IronTesseract()
Using input = New OcrInput()
Dim contentArea = New Rectangle(x:= 252, y:= 282, width:= 148, height:= 47)
input.LoadImage("CarPlate.jpeg", contentArea)
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
Console.WriteLine(result.Text)
End Using

Podział kodu:
- Inicjalizacja:
var ocr = new IronTesseract();tworzy nową instancję klasyIronTesseract, która odpowiada za wykonywanie operacji OCR. - Dane wejściowe OCR: Instrukcja
using (var input = new OcrInput())tworzy nowy obiektOcrInput, który zostanie użyty do załadowania i przetworzenia obrazu na potrzeby OCR. - Definiowanie obszaru zainteresowania:
var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);definiuje prostokątny obszar (contentArea) w obrębie obrazu. Ten prostokąt określa współrzędne i wymiary (szerokość i wysokość) miejsca, w którym ma znajdować się tablica rejestracyjna. - Ładowanie obrazu:
input.LoadImage("CarPlate.jpeg", contentArea);ładuje określony plik obrazu ("CarPlate.jpeg") i skupia się na zdefiniowanym prostokącie (contentArea), aby ograniczyć przetwarzanie OCR do tego konkretnego obszaru. - Odczytanie tablicy rejestracyjnej:
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);wywołuje metodęReadLicensePlate, która analizuje obraz wejściowy pod kątem znaków tablicy rejestracyjnej i zwraca obiektOcrLicensePlateResultzawierający wyodrębniony tekst. - Wynik:
Console.WriteLine(result.Text);PRINTuje rozpoznany tekst z tablicy rejestracyjnej na konsoli.
Automatyczne rozpoznawanie tablic rejestracyjnych
IronOCR wykorzystuje OpenCV do identyfikacji obszarów tekstowych na obrazach, stosując różne techniki przetwarzania obrazu. Ta funkcja umożliwia programom wykrywanie tablic rejestracyjnych poprzez lokalizowanie obszarów tekstowych na obrazie, a następnie wykorzystanie Tesseract do odczytania tych obszarów.
Instalacja
Aby włączyć model wykrywania tablic rejestracyjnych, zainstaluj wymagańy pakiet za pomocą konsoli menedżera pakietów:
Przykład wykorzystania automatycznego wykrywania regionu w przypadku tablic rejestracyjnych:
var ocr = new IronTesseract();
using (var input = new OcrImageInput("CarPlate.jpeg"))
{
input.FindTextRegion();
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrImageInput("CarPlate.jpeg"))
{
input.FindTextRegion();
OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrImageInput("CarPlate.jpeg")
input.FindTextRegion()
Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
Console.WriteLine(result.Text)
End Using

Podział kodu:
- Inicjalizacja: Tworzona jest instancja klasy
IronTesseract, która będzie używana do optycznego rozpoznawania znaków (OCR) za pomocą silnika Tesseract. - Wprowadzanie obrazu: Tworzona jest instancja nowego obiektu
OcrImageInputz określonym plikiem obrazu ("CarPlate.jpeg"). Obiekt ten posłuży jako dane wejściowe dla procesu OCR i jest ujęty w instrukcjiusingw celu zapewnienia prawidłowego zarządzania zasobami. - Wykrywanie regionu tekstu: Metoda
FindTextRegion()jest wywoływana na obiekcieinput. Metoda ta wykorzystuje techniki wizji komputerowej do automatycznej identyfikacji obszarów obrazu, które prawdopodobnie zawierają tekst, skupiając się w szczególności na tablicy rejestracyjnej. - Rozpoznawanie tablic rejestracyjnych: Wywoływana jest metoda
ReadLicensePlatew celu analizy wykrytych obszarów tekstu i wyodrębnienia numeru rejestracyjnego. Wynik jest przechowywany w obiekcieOcrLicensePlateResult, który zawiera rozpoznany tekst oraz wszelkie powiązane metadane. - Wynik: Wykryty tekst tablicy rejestracyjnej jest drukowany w konsoli, co pozwala użytkownikowi zobaczyć wyodrębniony numer rejestracyjny.
Licencjonowanie IronOCR

Dla tych, którzy chcą wypróbować IronOCR, dostępna jest bezpłatna wersja próbna, która zapewnia dostęp do pełnego zakresu oferowanych narzędzi, co oznacza, że można je przetestować we własnych projektach przed zakupem licencji. Po wygaśnięciu bezpłatnego okresu próbnego ceny licencji IronOCR zaczynają się już od $Lite License za licencję Lite. Oferuje również opcjonalne dodatki za dodatkową opłatą, takie jak bezpłatny zakres redystrybucji, nieprzerwane wsparcie techniczne oraz bieżące aktualizacje produktu.
Ponadto, jeśli potrzebujesz korzystać z innych produktów Iron Software poza IronOCR, takich jak IronPDF do zadań związanych z plikami PDF lub IronWord do pracy z dokumentami Word, firma Iron Software oferuje również pakiet Iron Suite, który stanowi doskonały sposób na uzyskanie dostępu do całej gamy narzędzi w atrakcyjnej cenie.
Wnioski
W tym przewodniku omówiliśmy, jak zbudować niezawodny system rozpoznawania tablic rejestracyjnych w języku C# przy użyciu IronOCR. Dzięki potężnym możliwościom ekstrakcji tekstu i integracji z OpenCV, IronOCR zapewnia wydajne, łatwe w użyciu rozwiązanie dla aplikacji wymagających dokładnego rozpoznawania tekstu na zdjęciach pojazdów. Od wstępnego przetwarzania obrazu po ustawianie konkretnych obszarów wykrywania, IronOCR upraszcza proces OCR dzięki narzędziom dostosowanym do obrazów zawierających zakłócenia lub złożonych, takich jak tablice rejestracyjne w ruchu drogowym i materiały z monitoringu.
Niezależnie od tego, czy tworzysz oprogramowanie do monitorowania ruchu, egzekwowania przepisów parkingowych, czy też jakąkolwiek aplikację wymagającą automatycznego rozpoznawania tablic rejestracyjnych, biblioteka IronOCR oferuje kompleksową bibliotekę, która płynnie integruje się ze środowiskami .NET. Postępując zgodnie z tymi krokami, będziesz gotowy do wdrożenia rozwiązań opartych na technologii OCR, które zwiększają wydajność i dokładność w różnych rzeczywistych scenariuszach. Dzięki dodatkowym funkcjom, takim jak wybór regionu i redukcja szumów, IronOCR zapewnia optymalizację zadań związanych z rozpoznawaniem tablic rejestracyjnych w celu uzyskania najlepszych możliwych wyników.
Często Zadawane Pytania
Jak mogę użyć OCR do rozpoznawania numerów rejestracyjnych w języku C#?
Możesz użyć IronOCR do identyfikacji numerów tablic rejestracyjnych w języku C#, wykorzystując klasę IronTesseract do utworzenia instancji OCR, załadowania obrazu zawierającego tablicę rejestracyjną, zastosowania filtrów przetwarzania wstępnego, takich jak redukcja szumów, oraz wyodrębnienia tekstu za pomocą metody ReadLicensePlate.
Jakie są zalety wykorzystania OCR do rozpoznawania tablic rejestracyjnych?
Wykorzystanie OCR do rozpoznawania tablic rejestracyjnych automatyzuje proces wyodrębniania tekstu, zapewniając wysoką dokładność i wydajność. IronOCR rozszerza te możliwości, zapewniając obsługę wielu formatów obrazów oraz integrację z systemami wizji komputerowej, dzięki czemu idealnie nadaje się do zastosowań takich jak zarządzanie ruchem drogowym i egzekwowanie prawa.
Jak radzić sobie z zakłóconymi lub niskiej jakości obrazami podczas przetwarzania OCR?
IronOCR zapewnia zaawansowane funkcje przetwarzania wstępnego obrazów, takie jak automatyczna redukcja szumów i konwersja do skali szarości, które poprawiają dokładność ekstrakcji tekstu nawet w przypadku obrazów z zakłóceniami lub o niskiej jakości.
Czy możliwe jest skupienie przetwarzania OCR na określonych obszarach obrazu?
Tak, IronOCR pozwala określić prostokątne obszary zainteresowania na obrazie, aby skoncentrować przetwarzanie OCR, poprawiając zarówno szybkość, jak i dokładność wyodrębniania tekstu z obszarów takich jak tablice rejestracyjne.
Jak rozpocząć korzystanie z OCR w projekcie Visual Studio?
Aby rozpocząć korzystanie z OCR w projekcie Visual Studio, należy utworzyć nową aplikację konsolową, zainstalować pakiet IronOCR za pośrednictwem NuGet oraz zaimplementować logikę OCR przy użyciu klas i metod IronOCR. Taka konfiguracja pozwala na łatwe wykonywanie zadań OCR w ramach aplikacji.
Jakie funkcje oferuje IronOCR w zakresie rozpoznawania tablic rejestracyjnych?
IronOCR oferuje wysoką dokładność OCR, integrację z OpenCV w celu usprawnienia zadań związanych z wizją komputerową, zaawansowane filtry przetwarzania wstępnego oraz obsługę wielu formatów obrazów i plików PDF, co czyni go wszechstronnym narzędziem do rozpoznawania tablic rejestracyjnych.
W jaki sposób IronOCR integruje się z zadaniami z zakresu widzenia komputerowego?
IronOCR integruje się z OpenCV w celu wykonywania różnych zadań związanych z wizją komputerową, takich jak automatyczne wykrywanie obszarów tekstu, usprawniając proces OCR w zastosowaniach takich jak rozpoznawanie tablic rejestracyjnych.
Jakie opcje licencyjne są dostępne dla IronOCR?
IronOCR oferuje bezpłatną wersję próbną, a także różne opcje licencyjne, począwszy od Lite License. Dodatkowe dodatki oraz Iron Suite są dostępne dla użytkowników poszukujących rozszerzonej funkcjonalności w różnych aplikacjach.
Czy technologia OCR może być stosowana do pełnych obrazów pojazdów?
Tak, IronOCR może być używany z obrazami całych pojazdów. Określając obszar tablicy rejestracyjnej, można skoncentrować przetwarzanie OCR na wybranym obszarze, unikając niepotrzebnego wyodrębniania tekstu i poprawiając wydajność przetwarzania.



