Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Hoe een vast deel van een gescand blad omzetten naar tekst (OCR)?  (gelezen 745 keer)

Offline Jenske

  • Lid
Bestaat er een manier om uit de scan van een document (A4 of A5) telkens een bepaald gedeelte te scannen, om te zetten naar tekst (als een soort OCR) en deze tekst (als tekst) te plakken op de scan? Deze geplakte tekst is dan nadien vlot op te zoeken via de zoek-functie in Kubuntu.

Achtergrond van mijn vraag:
  • Ik maak nogal wat schema's op papier, die ik nadien wil inscannen. Ik gooi daarna het papier weg.
  • Om alles ordelijk en chronologisch te houden, hernoem ik het gescande bestand naar de datum en bladzijdenummer die op het papiertje staat. Dat doe ik manueel, op basis van de door mij handgeschreven datum en blz. op het papier.
  • Ik plaats de datum en blz. altijd consequent in een kadertje onderaan het blad.
  • Onder dat "bepaald gedeelte" versta ik dus: tekst die ik systematisch in een kadertje plaats, dat ik standaard voor al mijn notitieblaadjes gebruik.
Ik wil dus niet per se dat heel het gescande blad wordt ge-OCR'd, want gewoonlijk werk ik met allerlei pijlen, cirkels, maar ook zeer vakspecifieke woorden, die door OCR niet worden herkend
... Kubuntu 25.04 ... KDE Plasma ... X11 ...
... 32 Gb RAM ... NVidia GeForce RTX 3060 ...

Offline vanadium

  • Lid
Re: Hoe een vast deel van een gescand blad omzetten naar tekst (OCR)?
« Reactie #1 Gepost op: 2023/06/24, 14:31:07 »
[Edit]Ik had oorspronkelijk je vraag wellicht verkeerd begrepen. Ik laat mijn origineel antwoord ook staan: kan nuttig zijn voor jou of voor anderen.

Wellicht bedoel je automatisch leesbare tekst toe te voegen aan je PDF, maar dan alleen van een specifieke zone. Je zal eens de verschillende programma's moeten bekijken die dienen om een "textlaag" toe te voegen aan een PDF, maar ik vrees dat geen enkel in staat zal zijn om in te stellen dat enkel een deel van de bladzijde moet geOCRd worden.

Nu kan je proberen meteen de ganse pagina te laten herkennen. Tekst neemt niet veel plaats, en pijlen, cirkels, enz zullen toch niet herkend worden. Je documenten zullen zowiezo niet veel groter worden. Naast je gewenste tekst zal er ook andere tekst bijzitten, maar dat zal niet storen voor je doeleinden.

[eerder antwoord]
Dan ben je misschien geholpen met een programma dat toelaat een selectie op het scherm te maken om daar onmiddellijk OCR op te doen. In Ubuntu Software zelf zie ik niet meteen zo een programma. Twee dergelijke programma's die via flatpak beschikbaar zijn, zijn Textsnatcher en normcap.

Ik gebruik echter al lang een script dat ik opstart met de sneltoets Super+Shift+G. ("Grab"). Na het indrukken van de sneltoets verschijnt een kruisje (dat is het oude "gnome-screenshot" in actie), daarmee selecteer je een rechthoek door de muis te klikken in de linkerbovenhoek en daarna te slepen naar het einde van de selectie. Na loslaten van de muiscursor zit de herkende tekst netjes in het klembord klaar om te plakken:

#!/bin/bash
# DEPENDENCIES: tesseract, ImageMagick, gnome-screenshot, zenity, wl-copy (Wayland) of xsel (X11)
# AUTHOR:       Glutanimate 2013 (http://askubuntu.com/users/81372/)
# NAME:         ScreenOCR
# LICENSE:      GNU GPLv3

trap 'rm $SCR_IMG*' EXIT # make sure tempfiles get deleted afterwards
DISPLAYDRIVER="$XDG_SESSION_TYPE"
SCR_IMG=$(mktemp) # create tempfile
LANG=eng
export LC_ALL=en_US.UTF-8 # - tesseract won't work if LC_ALL is unset so we set it here

gnome-screenshot -a -f "$SCR_IMG".png
mogrify -modulate 100,0 -resize 400% -set units PixelsPerInch -density 300 "$SCR_IMG".png # postprocess to prepare for OCR - also sets resolution metadata to 300 dpi
tesseract -l "$LANG" "$SCR_IMG".png "$SCR_IMG" # OCR in given language
if [ "$DISPLAYDRIVER" = 'x11' ] ; then
head -c -1 "$SCR_IMG".txt | xsel -bi # pass to clipboard
else
head -c -1 "$SCR_IMG".txt | wl-copy
fi
exit

Je vindt in de code de link naar het originele script. Dit script werd aangepast om ook met Wayland te werken. Een dialoog om de taal te selecteren heb ik eruit gehaald: dat verbetert de herkenning, maar meestal gaat het ook wel goed zo. Toch doe je er voordeel mee de variabele "lang" naar "nld" veranderen als je vooral nederlandstalige tekst OCRt.

« Laatst bewerkt op: 2023/06/24, 17:33:56 door vanadium »