Jak pobrać tekst z faktury w języku C# – samouczek
Jak wykonać OCR paragonu w Tesseract
- Zainstaluj bibliotekę C# do OCR paragonów z Tesseract
- Poznaj bogatą w funkcje bibliotekę C# do wykonywania OCR na paragonach
- Wyodrębnianie danych z paragonu za pomocą Tesseract
- Wyszukaj w wyodrębnionym tekście konkretne dane
- Odczyt wartości BarCode na obrazku paragonu wejściowego
1. IronOCR, interfejs API do optycznego rozpoznawania znaków
IronOCR to biblioteka OCR, którą można wykorzystać do rozpoznawania danych tekstowych z obrazów w celu ekstrakcji informacji, w tym do OCR paragonów. Opiera się na silniku OCR Tesseract, który jest uważany za jeden z najdokładniejszych silników OCR dostępnych obecnie do rozpoznawania paragonów. IronOCR potrafi odczytywać kluczowe informacje z różnych typów dokumentów, w tym formatów PNG, JPG, TIFF, JSON i PDF, a także rozpoznaje tekst w wielu językach.
Jedną z kluczowych funkcji IronOCR, która sprawia, że jest on szczególnie przydatny do OCR paragonów, jest możliwość automatycznego wykrywania orientacji tekstu, nawet jeśli obraz został obrócony lub przekrzywiony. Ma to kluczowe znaczenie dla dokładnego rozpoznawania tekstu podczas przesyłania paragonów i wyodrębniania danych, ponieważ paragony często zawierają wiele informacji i mogą być złożone lub pogniecione, co powoduje zniekształcenie tekstu.
2. Funkcje IronOCR
- C# OCR wykorzystuje Deep Learning do skanowania i rozpoznawania tekstów ze zdjęć, zeskanowanych dokumentów i plików PDF.
- .NET OCR obsługuje ponad 125 języków z całego świata.
- IronOCR może odczytywać tekst z obrazów w wielu formatach plików, w tym PNG, JPG, TIFF i PDF.
- Na podstawie wyodrębnionych informacji można generować tekst, dane strukturalne, pliki JSON lub pliki PDF z możliwością wyszukiwania.
- IronOCR obsługuje wersje .NET 5, 6 i 7 (Core, Framework i Standard).
- IronOCR dzieli dane wejściowe na różne obrazy w oparciu o regiony tekstowe. Wykorzystuje technologię Computer Vision do identyfikacji obszarów zawierających elementy tekstowe.
3. Tworzenie nowego projektu w Visual Studio
Otwórz program Visual Studio i przejdź do menu Plik. Wybierz "Nowy projekt", a następnie wybierz opcję "Aplikacja konsolowa".
Wpisz nazwę projektu i wybierz ścieżkę w odpowiednim polu tekstowym. Następnie kliknij przycisk Utwórz. Wybierz wymagańy .NET Framework, jak pokazano na poniższym zrzucie ekranu:

Teraz zostanie wygenerowana struktura projektu dla aplikacji konsolowej. Po zakończeniu otworzy się plik Program.cs, w którym można pisać i wykonywać kod źródłowy.

4. Zainstaluj IronOCR
W programie Visual Studio można łatwo zintegrować IronOCR z projektem C#. IronOCR oferuje wiele sposobów integracji z projektem C# .NET. W tym miejscu omówimy jedno z nich: instalację IronOCR za pomocą menedżera pakietów NuGet.
W programie Visual Studio przejdź do menu Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów

W dolnej części okna programu Visual Studio pojawi się nowa konsola. Wpisz poniższe polecenie w konsoli i naciśnij Enter.
Install-Package IronOcr
IronOCR zostanie zainstalowany w ciągu zaledwie kilku sekund.
5. Pobieranie danych z paragonów przy użyciu IronOCR
IronOCR to potężna biblioteka OCR, którą można wykorzystać do wyodrębniania i uzyskiwania dostępu do szczegółowych danych z paragonów. Dzięki IronOCR można przekształcić zdjęcie paragonu w tekst nadający się do odczytu maszynowego, który można łatwo analizować i przetwarzać bez naruszania prywatności danych.
Oto przykład wykorzystania IronOCR do wyodrębnienia tekstu z paragonu:
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Read the OCR result
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
string recognizedText = ocrResult.Text;
// Output the recognized text to the console
Console.WriteLine(recognizedText);
}
}
}
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Read the OCR result
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
string recognizedText = ocrResult.Text;
// Output the recognized text to the console
Console.WriteLine(recognizedText);
}
}
}
Imports IronOcr
Imports System
Friend Class Program
Shared Sub Main()
Dim ocrTesseract As New IronTesseract()
' Load the receipt image
Using ocrInput As New OcrInput("ocr.png")
' Read the OCR result
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
Dim recognizedText As String = ocrResult.Text
' Output the recognized text to the console
Console.WriteLine(recognizedText)
End Using
End Sub
End Class
Więcej informacji na temat tego, jak IronOCR odczytuje tekst z obrazów przy użyciu języka C#, można znaleźć w samouczku Odczytywanie tekstu z obrazu.
Wynik działania powyższego kodu:
- LOGO SHOP
- LOREM IPSUM
- DOLOR SIT AMET CONSECTETUR
- ADIPISCING ELIT
- 1 LOREM IPSUM $3.20
- 2 ORNARE MALESUADA $9.50
- 3 PORTA FERMENTUM $5.90
- 4 SODALES ARCU $6.00
- 5 ELEIFEND $9.00
- 6 SEM NISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISI RISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00
6. Wyodrębnianie konkretnych danych z obrazu paragonu przy użyciu IronOCR
IronOCR pozwala programistom na pobieranie kluczowych informacji ze skanowanych paragonów, takich jak kwoty podatków i nazwy sprzedawców.
Oto przykład pokazujący, jak wyodrębnić wartość całkowitej kwoty z obrazu paragonu:
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Set the language for OCR
ocrTesseract.Language = OcrLanguage.English;
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Optimize the input image for OCR
ocrInput.DeNoise(true);
ocrInput.Contrast();
ocrInput.EnhanceResolution();
ocrInput.ToGrayScale();
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Search for the total amount in the OCR result
var totalAmount = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
Console.WriteLine("Total Amount: " + totalAmount);
}
}
}
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Set the language for OCR
ocrTesseract.Language = OcrLanguage.English;
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Optimize the input image for OCR
ocrInput.DeNoise(true);
ocrInput.Contrast();
ocrInput.EnhanceResolution();
ocrInput.ToGrayScale();
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Search for the total amount in the OCR result
var totalAmount = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
Console.WriteLine("Total Amount: " + totalAmount);
}
}
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Friend Class Program
Shared Sub Main()
Dim ocrTesseract As New IronTesseract()
' Set the language for OCR
ocrTesseract.Language = OcrLanguage.English
' Load the receipt image
Using ocrInput As New OcrInput("ocr.png")
' Optimize the input image for OCR
ocrInput.DeNoise(True)
ocrInput.Contrast()
ocrInput.EnhanceResolution()
ocrInput.ToGrayScale()
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
' Search for the total amount in the OCR result
Dim totalAmount = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
Console.WriteLine("Total Amount: " & totalAmount)
End Using
End Sub
End Class
Dzięki wielu ustawieniom udostępnianym przez klasę OcrInput możliwe jest zoptymalizowanie obrazu wejściowego w celu uzyskania większej dokładności w procesie OCR.
Dane wejściowe

Wynik
- Total 16.5
7. Odczytywanie BarCodes na paragonach
IronOCR może służyć do odczytywania BARCODE-ów na paragonach, a także tekstu. Aby odczytać BARCODES na paragonach, należy użyć klasy BarcodeReader w połączeniu z metodą ReadBarCodes.
Oto przykład odczytu kodów kreskowych:
using IronOcr;
using System;
class Program
{
static void Main()
{
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
// Load the receipt image with a barcode
using (var ocrInput = new OcrInput("b.png"))
{
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Output the barcode values to the console
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
}
}
using IronOcr;
using System;
class Program
{
static void Main()
{
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
// Load the receipt image with a barcode
using (var ocrInput = new OcrInput("b.png"))
{
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Output the barcode values to the console
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
}
}
Imports IronOcr
Imports System
Friend Class Program
Shared Sub Main()
Dim ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
' Load the receipt image with a barcode
Using ocrInput As New OcrInput("b.png")
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
' Output the barcode values to the console
For Each barcode In ocrResult.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
End Using
End Sub
End Class
Obraz wejściowy

Tekst docelowy

8. Podsumowanie
Powyższy artykuł wyjaśnia proces instalacji i używania IronOCR w projekcie C# do wyodrębniania danych z paragonów, wraz z przykładowymi fragmentami kodu.
Proszę zapoznać się z samouczkiem dotyczącym odczytywania tekstu z obrazów.
IronOCR jest częścią pakietu Iron Suite, który zawiera pięć różnych bibliotek .NET do obróbki dokumentów i obrazów. Cały pakiet Iron Suite można kupić za cenę zaledwie dwóch licencji IronOCR.
Wypróbuj IronOCR w swoich aplikacjach produkcyjnych dzięki bezpłatnej wersji próbnej.
Często Zadawane Pytania
Jak mogę użyć IronOCR do przeprowadzenia OCR na obrazie paragonu w języku C#?
Możesz użyć IronOCR do przeprowadzenia OCR na obrazie paragonu, ładując obraz do klasy OcrInput i wywołując metodę Read w celu wyodrębnienia danych tekstowych, takich jak szczegółowe listy i kwoty całkowite.
Jakie są zalety korzystania z IronOCR zamiast Tesseract do przetwarzania faktur?
IronOCR oferuje zwiększoną dokładność, obsługuje ponad 125 języków i zawiera funkcje takie jak automatyczne wykrywanie orientacji tekstu oraz możliwości głębokiego uczenia się. Łatwiej jest go również zintegrować z projektami C# przy użyciu menedżera pakietów NuGet.
Jak zintegrować IronOCR z projektem Visual Studio?
Aby zintegrować IronOCR z projektem Visual Studio, użyj menedżera pakietów NuGet. Przejdź do menu Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów, a następnie wykonaj polecenie Install-Package IronOcr, aby dodać bibliotekę IronOCR do projektu.
Czy IronOCR obsługuje wiele języków podczas OCR paragonów?
Tak, IronOCR obsługuje wiele języków, wspierając ponad 125 języków z całego świata, co sprawia, że idealnie nadaje się do przetwarzania paragonów zawierających tekst w wielu językach.
W jaki sposób IronOCR poprawia dokładność rozpoznawania tekstu na paragonach?
IronOCR poprawia dokładność rozpoznawania tekstu dzięki takim funkcjom, jak uczenie głębokie, automatyczne wykrywanie orientacji tekstu oraz możliwość optymalizacji obrazów przy użyciu klasy OcrInput w celu uzyskania lepszych wyników OCR.
Czy za pomocą IronOCR można wyodrębnić szczegółowe listy z paragonów?
Tak, IronOCR może służyć do wyodrębniania szczegółowych list z paragonów poprzez przetwarzanie danych tekstowych i identyfikację pozycji za pomocą dopasowywania wzorców po przeprowadzeniu OCR.
W jaki sposób IronOCR radzi sobie z odczytywaniem BARCODE-ów na paragonach?
IronOCR obsługuje odczyt kodów kreskowych za pomocą klasy BarcodeReader i metody ReadBarCodes, które skanują i dekodują kody kreskowe obecne na paragonach.
Jakie formaty plików może przetwarzać IronOCR w celu rozpoznawania optycznego (OCR) paragonów?
IronOCR może przetwarzać różne formaty plików do rozpoznawania optycznego (OCR) paragonów, w tym PNG, JPG, TIFF i PDF, dzięki czemu jest wszechstronny w przypadku różnych typów danych wejściowych.
Jakie kroki należy wykonać, aby skonfigurować IronOCR do przetwarzania faktur w języku C#?
Konfiguracja IronOCR do przetwarzania faktur obejmuje instalację biblioteki za pośrednictwem NuGet, skonfigurowanie OcrInput z obrazem paragonu oraz użycie metody Read do wyodrębnienia danych tekstowych. Można również wykorzystać funkcje biblioteki w celu zwiększenia dokładności i wyodrębnienia określonych danych, takich jak sumy.



