Jak odczytywać obrazy pisma ręcznego za pomocą IronOCR
IronOCR udostępnia specjalistyczną metodę ReadHandwriting, która niezawodnie digitalizuje tekst pisany odręcznie z obrazów, osiągając około 90% dokładności w przypadku pisma ręcznego w języku angielskim, pomimo nieodłącznych wyzwań związanych z nieregularnymi odstępami i różnicami w kreskach.
Szybki start: Odczytywanie obrazów pisma ręcznego za pomocą IronOCR
- Zainstaluj IronOCR i pakiet
IronOcr.Extensions.AdvancedScan - Utwórz instancję
IronTesseract - Załaduj obraz swojego pisma ręcznego za pomocą
LoadImage() - Wywołaj metodę
ReadHandwriting() - Uzyskaj dostęp do wyodrębnionego tekstu z
OcrResult
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
using IronOcr; var ocrTesseract = new IronTesseract(); using var ocrInput = new OcrInput(); ocrInput.LoadImage("handwriting.png"); var ocrResult = ocrTesseract.ReadHandwriting(ocrInput); Console.WriteLine(ocrResult.Text); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Automatyczne odczytywanie tekstu pisanego odręcznie z obrazów jest niezwykle trudne, ponieważ ludzie piszą w różny sposób. Ta ogromna niespójność sprawia, że OCR jest trudnym zadaniem. Kluczowe dokumenty, takie jak stare rejestry, formularze przyjęcia pacjentów i ankiety klientów, nadal wymagają ręcznego przetwarzania, co prowadzi do podatnych na błędy procesów, które zagrażają integralności danych.
IronOCR rozwiązuje ten problem, wprowadzając specjalistyczną metodę niezawodnego rozpoznawania i digitalizacji obrazów pisma ręcznego. Oparty na potężnym silniku Tesseract 5, IronOCR łączy zaawansowane przetwarzanie obrazu z uczeniem maszynowym, zapewniając wiodące w branży możliwości rozpoznawania pisma ręcznego.
Ten przewodnik krok po kroku przeprowadzi Cię przez proces wdrażania OCR pisma ręcznego w aplikacjach .NET. Niezależnie od tego, czy digitalizujesz dokumenty historyczne, przetwarzasz formularze medyczne, czy konwertujesz odręczne notatki, dowiesz się, jak osiągnąć wiarygodne wyniki dzięki IronOCR.
Rozpocznij pracę z IronOCR
Jak odczytywać obrazy pisma ręcznego za pomocą IronOCR
- Pobierz bibliotekę C# do odczytu obrazów pisma ręcznego
- Utwórz instancję silnika OCR
- Załaduj obraz pisma ręcznego za pomocą
LoadImage - Użyj metody
ReadHandwriting,aby wyodrębnić dane z przykładowego obrazu pisma ręcznego - Użyj właściwości OcrResult, aby wyświetlić i przetwarzać wyodrębnione dane
Aby skorzystać z tej funkcji, należy najpierw zainstalować pakiet IronOcr.Extensions.AdvancedScan. Należy pamiętać, że metoda ReadHandwriting obsługuje obecnie wyłącznie język angielski. W przypadku OCR dla wielu języków należy użyć standardowej metody Read() z odpowiednimi pakietami językowymi.
Jak odczytywać obrazy pisma ręcznego za pomocą IronOCR?
Odczytanie obrazu pisma ręcznego za pomocą IronOCR jest proste. Najpierw należy zainicjować silnik OCR, następnie załadować obraz za pomocą LoadImage, a na koniec użyć specjalistycznej metody ReadHandwriting przeznaczonej do rozpoznawania pisma ręcznego. PRINT wyodrębniony tekst, aby zweryfikować jego dokładność i treść.
Przed przetworzeniem warto rozważyć zastosowanie filtrów poprawiających jakość obrazu, aby zwiększyć czytelność. Filtry te mogą znacznie poprawić dokładność rozpoznawania, zwłaszcza w przypadku zeskanowanych dokumentów o słabym kontraście lub niskiej rozdzielczości.
Jakiego formatu pliku użyć?
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR on the handwriting image
OcrHandwritingResult result = ocr.ReadHandwriting(inputHandWriting);
// Output the recognized handwritten text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR on the handwriting image
Dim result As OcrHandwritingResult = ocr.ReadHandwriting(inputHandWriting)
' Output the recognized handwritten text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
Jakich rezultatów mogę się spodziewać?
Metoda ReadHandwriting osiągnęła wynik pewności na poziomie 90,6%, poprawnie identyfikując większość tekstu, w tym zdanie otwierające "Nazywam się Erin Fish".
Ten doskonały wynik pokazuje możliwości IronOCR w zakresie trudnych tekstów pisanych odręcznie. Chociaż silnik miał trudności z odstępami i połączonymi literami, udało mu się wydobyć sedno przekazu. To pokazuje, że IronOCR skutecznie radzi sobie ze złożonymi, niestandardowymi tekstami.
Osoby, które dopiero zaczynają przygodę z OCR, powinny zapoznać się z naszym prostym samouczkiem dotyczącym OCR, aby zrozumieć podstawy przed przystąpieniem do rozpoznawania pisma ręcznego.
Jak korzystać z wersji asynchronicznej?
IronOCR obsługuje wersję asynchroniczną: ReadHandwritingAsync. Jest to przydatne w przypadku kodu asynchronicznego, który wymaga pobrania obrazów wejściowych przed przetworzeniem. Dokumentacja dotycząca obsługi asynchronicznej zawiera wyczerpujące wskazówki dotyczące wdrażania asynchronicznych operacji OCR.
Korzystając z tych samych danych wejściowych, oto jak użyć metody async:
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image-async.cs
using IronOcr;
using System;
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
#endregion
public class read_handwritten_image_async
{
public async Task codeAsync()
{
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR using the async method with 'await'.
// The compiler automatically infers this top-level code block as an 'async Task Main()' method.
OcrHandwritingResult result = await ocr.ReadHandwritingAsync(inputHandWriting);
// Output the recognized handwriting text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
Imports System.Threading.Tasks
Public Class ReadHandwrittenImageAsync
Public Async Function CodeAsync() As Task
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR using the async method with 'Await'.
' The compiler automatically infers this top-level code block as an 'async Task Main()' method.
Dim result As OcrHandwritingResult = Await ocr.ReadHandwritingAsync(inputHandWriting)
' Output the recognized handwriting text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
End Function
End Class
Można podać opcjonalny parametr timeoutMs, aby określić liczbę milisekund przed automatycznym anulowaniem. Wartością domyślną jest -1, co oznacza brak limitu czasowego — operacja trwa do zakończenia.
Zaawansowane techniki przetwarzania
W przypadku złożonych scenariuszy rozpoznawania pisma ręcznego warto rozważyć następujące zaawansowane techniki:
OCR dostosowane do regionu: Podczas pracy z formularzami lub dokumentami ustrukturyzowanymi należy używać OCR dostosowanego do regionu, aby skupić się na konkretnych obszarach zawierających tekst pisany odręcznie. Takie podejście poprawia dokładność poprzez ograniczenie obszaru przetwarzania:
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
Imports IronOcr
Imports IronSoftware.Drawing
Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()
' Define a specific region for signature area
Dim signatureRegion As New CropRectangle(x:=100, y:=500, width:=300, height:=100)
ocrInput.LoadImage("form-with-signature.png", signatureRegion)
Dim signatureResult = ocrTesseract.ReadHandwriting(ocrInput)
Console.WriteLine($"Signature text: {signatureResult.Text}")
End Using
Śledzenie postępów: W przypadku przetwarzania wsadowego wielu dokumentów pisanych odręcznie należy wdrożyć śledzenie postępów w celu monitorowania operacji OCR:
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += Sub(sender, e)
Console.WriteLine($"Processing: {e.ProgressPercent}% complete")
End Sub
O jakich wyzwaniach powinienem pamiętać?
Chociaż IronOCR osiąga wysoki poziom pewności w zachowaniu ogólnej struktury i tekstu, OCR nadal ma trudności z rozpoznawaniem pisma ręcznego, co prowadzi do lokalnych błędów. Typowe wyzwania wymagają weryfikacji wyodrębnionych wyników:
Nieregularne odstępy: Tekst drukowany ma jednolite odstępy między literami. Odstępy między pociągnięciami pióra i połączeniami liter w piśmie odręcznym są bardzo zróżnicowane. Powoduje to nieprawidłową segmentację znaków, co widać na przykładzie ununiformed, który rozdziela się na poszczególne znaki (u n u n i f o c m e d) zamiast na jedno słowo.
Różnice w pismie: Każda osoba ma unikalne pismo, a poszczególne osoby piszą tę samą literę za każdym razem inaczej. Połączenia między literami i wzory pisma znacznie się różnią. Uniemożliwia to stosowanie modelu "jednego rozmiaru dla wszystkich", ponieważ silnik musi radzić sobie z dużą zmiennością nachylenia, nacisku i kształtu pociągnięć, co sprawia, że dopasowywanie wzorców jest mniej niezawodne niż w przypadku standardowych czcionek.
Niejednoznaczne kształty znaków: Pismo ręczne często wykorzystuje uproszczone lub pośpieszne pociągnięcia pióra, tworząc niejednoznaczne kształty. Szybko napisane e może przypominać c, a połączone l i i mogą zostać błędnie zidentyfikowane.
Problemy z jakością i rozdzielczością: Słaba jakość skanu, niska rozdzielczość lub wyblakły tusz mają znaczący wpływ na dokładność rozpoznawania. W przypadku napotkania takich problemów, zapoznaj się z naszym ogólnym przewodnikiem rozwiązywania problemów, aby znaleźć rozwiązania.
Korzystając z tej metody, sprawdź, czy wynik odpowiada zamierzonemu tekstowi źródłowemu, zwracając szczególną uwagę na słowa położone blisko siebie lub nieprawidłowo sformułowane. Rozważ wdrożenie logiki przetwarzania końcowego w celu obsługi typowych błędów rozpoznawania charakterystycznych dla Twojego przypadku użycia.
ReadHandwriting pozwala osiągnąć jedynie niską dokładność rozpoznawania OCR w przypadku pisma kursywnego. Często Zadawane Pytania
Jakiej dokładności mogę się spodziewać podczas wyodrębniania pisma odręcznego z obrazów?
Metoda ReadHandwriting w IronOCR osiąga około 90% dokładności dla rozpoznawania pisma odręcznego w języku angielskim, mimo wrodzonych wyzwań związanych z nieregularnym rozmieszczeniem i zmiennością pociągnięć, które czynią OCR pisma odręcznego szczególnie trudnym.
Jakie języki są obsługiwane dla rozpoznawania pisma odręcznego?
Metoda ReadHandwriting w IronOCR obecnie obsługuje tylko język angielski. Aby obsłużyć wiele języków, musisz użyć standardowej metody Read() z odpowiednimi pakietami językowymi zamiast specjalistycznej metody pisma odręcznego.
Jaki dodatkowy pakiet muszę zainstalować dla OCR pisma odręcznego?
Aby używać funkcji rozpoznawania pisma odręcznego w IronOCR, musisz zainstalować pakiet IronOcr.Extensions.AdvancedScan oprócz głównej biblioteki IronOCR.
Jak zaimplementować podstawowe rozpoznawanie pisma odręcznego w C#?
Utwórz instancję IronTesseract, załaduj swój obraz pisma odręcznego za pomocą LoadImage(), wywołaj metodę ReadHandwriting() i uzyskaj dostęp do wyodrębnionego tekstu z OcrResult. IronOCR automatycznie obsługuje złożone przetwarzanie obrazów oraz uczenie maszynowe.
Jakie rodzaje dokumentów pisanych odręcznie mogą być przetwarzane?
IronOCR może przetwarzać różnorodne dokumenty pisane odręcznie, w tym historyczne zapisy, formularze przyjęcia pacjentów, ankiety klienta oraz notatki odręczne. Biblioteka jest zaprojektowana tak, aby radzić sobie z niespójnościami w ludzkim piśmie odręcznym, które czynią ręczne przetwarzanie podatnym na błędy.
Jaka technologia napędza możliwości rozpoznawania pisma odręcznego?
Rozpoznawanie pisma odręcznego w IronOCR opiera się na potężnym silniku Tesseract 5, łącząc zaawansowane przetwarzanie obrazów z algorytmami uczenia maszynowego, żeby zapewnić wiodące w branży możliwości rozpoznawania pisma odręcznego.
Czy IronOCR można zintegrować z istniejącymi aplikacjami?
IronOCR jest zaprojektowany do łatwej integracji z istniejącymi aplikacjami używając C#, co pozwala programistom dodać funkcjonalność OCR do swojego oprogramowania z minimalnym wysiłkiem.
Jakie są korzyści z używania IronOCR do zarządzania dokumentami?
Używanie IronOCR do zarządzania dokumentami upraszcza przepływ pracy przez konwertowanie zeskanowanych dokumentów na przeszukiwalny i edytowalny tekst, redukując konieczność ręcznego wprowadzania danych i poprawiając dostępność dokumentów.
Jak IronOCR może poprawić dokładność danych?
IronOCR poprawia dokładność danych dzięki swoim zaawansowanym algorytmom rozpoznawania i funkcjom korekcji obrazów, zapewniając, że proces ekstrakcji tekstu jest zarówno niezawodny, jak i precyzyjny.
Czy dostępna jest bezpłatna wersja próbna IronOCR?
Tak, Iron Software oferuje bezpłatną wersję próbną IronOCR, umożliwiając użytkownikom przetestowanie jego funkcji i możliwości przed podjęciem decyzji o zakupie.

