Jak odczytywać obrazy pisma ręcznego za pomocą IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR dostarcza specjalizowaną metodę ReadHandwriting, która niezawodnie cyfryzuje tekst odręczny z obrazów, osiągając około 90% dokładność dla angielskiego pisma odręcznego, mimo inherentnych wyzwań związanych z nieregularnymi odstępami i wariacjami kreski.

Szybki start: Odczytywanie obrazów pisma ręcznego za pomocą IronOCR

  1. Zainstaluj IronOCR i pakiet IronOcr.Extensions.AdvancedScan
  2. Utwórz instancję IronTesseract
  3. Załaduj obraz pisma odręcznego za pomocą LoadImage()
  4. Wywołaj metodę ReadHandwriting()
  5. Uzyskaj dostęp do wyodrębnionego tekstu z OcrResult
  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr
  2. 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);
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

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


Aby użyć tej funkcji, musisz najpierw zainstalować pakiet IronOcr.Extensions.AdvancedScan. Pamiętaj, że metoda ReadHandwriting obecnie obsługuje tylko język angielski. Dla OCR w wielu językach, użyj 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. Po pierwsze, utwórz instancję silnika OCR, a następnie załaduj obraz za pomocą LoadImage, i w końcu użyj specjalizowanej metody ReadHandwriting zaprojektowanej do rozpoznawania pisma odrę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ć?

Przykładowy obraz wprowadzania pisma ręcznego przedstawiający tekst pisany kursywą do przetwarzania OCR
: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)
$vbLabelText   $csharpLabel

Jakich rezultatów mogę się spodziewać?

Wyniki OCR pokazujące wyodrębniony tekst odręczny wraz z wynikiem pewności

Metoda ReadHandwriting osiągnęła wynik zaufania 90,6%, poprawnie identyfikując większość tekstu, w tym wprowadzające zdanie "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 wspiera asynchroniczną wersję: 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;

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'.
        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'.
        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
$vbLabelText   $csharpLabel

Możesz podać opcjonalny parametr timeoutMs, aby określić liczbę milisekund przed automatycznym anulowaniem. Wartość domyślna to -1, co oznacza brak limitu czasu - operacja trwa do ukoń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:

:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image-4.cs
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
$vbLabelText   $csharpLabel

Ś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
$vbLabelText   $csharpLabel

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. To powoduje błędne segmentowanie znaków, jak pokazano, gdy ununiformed dzielone jest na pojedyncze znaki (u n u n i f o c m e d) zamiast jednego słowa.

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 odręczne często używa uproszczonych lub pospiesznych kresek, tworząc niejednoznaczne kształty. Szybko napisane e może przypominać c, lub połączone l i i mogą być 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.

Ostrzeżenie Metoda ReadHandwriting może osiągnąć tylko niską dokładność wyodrębniania OCR w odniesieniu do pisma kursywą. )]

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.

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 6,136,090 | Wersja: 2026.7 właśnie wydany
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.