- TextSnatcher ist eine OCR-App, mit der sich unter Linux Text aus Bildern schnell kopieren lässt: Man zieht über ein Bild, die Texterkennung wird ausgeführt und das Ergebnis kann eingefügt werden
- Zu den Kernfunktionen gehören Mehrsprachenunterstützung, das Kopieren von Text aus Bildern, Ziehen über beliebige Bilder und anschließendes Einfügen sowie eine schnelle und einfache Bedienung
- Für die Texterkennung wird Tesseract OCR 4.x verwendet; außerdem werden Links zur Tesseract-Dokumentation und zum Tesseract-Projekt bereitgestellt
- Die Verteilung erfolgt über Flathub und das elementary OS AppCenter; wer selbst bauen möchte, nutzt ein Installationsverfahren auf Basis von Meson und Ninja
- Für die Ausführung werden scrot, tesseract-ocr und Tesseract-Sprachdaten benötigt; das Projekt weist derzeit darauf hin, dass es im nächsten Monat mit Updates und Korrekturen zurückkehren soll
Was TextSnatcher macht
- TextSnatcher ist eine Linux-App, die Text aus Bildern kopiert und innerhalb weniger Sekunden eine OCR-Aufgabe ausführt
- Nutzer können über ein Bild ziehen, um Text zu kopieren und einzufügen
- Verfügbare Funktionen:
-
Mehrsprachenunterstützung
- Text per Ziehen aus Bildern kopieren
- Über ein beliebiges Bild ziehen und anschließend einfügen
- Schnelle und einfache Bedienung
-
OCR-Engine und verwandte Projekte
- TextSnatcher verwendet Tesseract OCR 4.x für die Texterkennung
- Als weiterführende Ressourcen werden die Tesseract-Dokumentation und das Tesseract-Project genannt
Installation und Vertriebswege
Abhängigkeiten und Build
- Für die Ausführung erforderliche Runtime-Abhängigkeiten:
- scrot
- tesseract-ocr
- Tesseract-Sprachdaten
- Links zu den Arch- und Debian-Repositories werden bereitgestellt
- Für den Build erforderliche Buildtime-Abhängigkeiten:
- granite
- gtk+-3.0
- gobject-2.0
- gdk-pixbuf-2.0
- libhandy-1
- libportal-0.5
- Wer selbst bauen und ausführen möchte, klont das Repository, erstellt anschließend ein Meson-Build-Verzeichnis, installiert mit Ninja und startet dann
com.github.rajsolai.textsnatcher
Entwicklungsstand und Quellen
- Das Projekt enthält ein Badge, das darauf hinweist, dass es mit Vala erstellt wurde
- In der README steht, dass derzeit Geld für den Kauf eines Linux-PCs gesammelt wird und das Projekt voraussichtlich im nächsten Monat mit Updates und Korrekturen zurückkehren soll
- Als Inspiration werden die README von Planner, die Anwendungsstruktur von Develop und die macOS-App TextSniper genannt
1 Kommentare
Meinungen auf Hacker News
Ich verwende ein Skript wie Dibby053; ich habe es von Stack Overflow übernommen, dann etwas angepasst, damit es unter KDE/GNOME und Wayland/X11 funktioniert, und lasse den aktuellen Status per Benachrichtigung anzeigen.
Die Erkennung von X11/Wayland habe ich noch nicht selbst getestet, aber ihr könnt es gern ausprobieren und berichten.
spectacleim Hintergrundmodus, damit nach dem Screenshot kein Fenster hervorspringt.Dabei werden
grim,slurp,mogrify,tesseractundwl-copyhintereinandergeschaltet, und die OCR-Sprache wird mitfuzzelausgewählt.Man wählt die Sprache mit
dmenuund verarbeitet es etwa mitmaim -us | tesseract --dpi 145 -l eng+${lang} - - | xsel -bi.https://news.ycombinator.com/item?id=33704483#33705272
trap "cleanup '$SCR_IMG'" EXITgibt ShellCheck manchmal einen False Positive aus, aber in diesem Fall ist der Hinweis nicht völlig falsch.Der an
trapübergebene Befehl wird normalerweise ausgewertet, wodurch Variablenerweiterung stattfindet;trap 'cleanup "$SCR_IMG"' EXITfunktioniert sicherer.Mit aktuellem Bash ist auch
trap "cleanup ${SCR_IMG@Q}" EXITeine Option.bash -c 'flameshot gui -s -r | tesseract - - | gxmessage -title "Decoded Data" -fn "Consolas 12" -wrap -geometry 640x480 -file -'gelegt.Wenn man Super+O drückt und den Bereich zieht, der per OCR erkannt werden soll, erscheint der erfasste Text sofort als Popup-Dialog.
Ein Skript, das ich vor langer Zeit irgendwo kopiert habe, erledigt das ziemlich gut.
Es erfasst mit
scroteinen Bereich, führt mitmogrifyeine Vorverarbeitung wie Schwarzweiß-Umwandlung und Vergrößerung durch, extrahiert den Text dann mittesseract, legt ihn mitxselin die Zwischenablage und zeigt sogar eine Benachrichtigung an.scrot.Dank der Option
--nodragist es bei der Bereichsauswahl mit dem Trackpad bequemer: einmal klicken, den Cursor bewegen und dann erneut klicken.Bei
maim -s --nodrag --quality=10 $IMG.pngentspricht10der100vonscrot.Auch durch die Vergrößerung als Vorverarbeitung habe ich keinen großen Unterschied bemerkt, und ich weiß nicht recht, welche Vorverarbeitung besser wäre.
Mich würde interessieren, ob TextSnatcher hier etwas verbessert, aber die GitHub-Seite ist wenig transparent.
Tut mir leid für die Kollegen, die zwischen Unix und Windows leben.
trap "rm $IMG*" EXITsollte man sich https://www.shellcheck.net/wiki/SC2064 ansehen.Besser ist es,
mktemp -dzu verwenden und das Verzeichnis rekursiv zu löschen.Ein Skript an eine Tastenkombination zu binden ist deutlich besser, als ein Fenster mit einem Button anklicken zu müssen.
Für die Kollegen aus dem gemeinen Volk, die Windows nutzen: Auch die offiziellen Microsoft PowerToys haben diese Funktion als Zusatzfeature.
Sie ist inzwischen auch im Standard-Screenshot-Tool enthalten, aber persönlich finde ich die einzelne Tastenkombination von PowerToys angenehmer.
https://github.com/microsoft/PowerToys
Man drückt WIN+SHIFT+S; wenn das Symbol „Text actions“ fehlt, sollte man über den Windows Store auf die neueste Version aktualisieren.
Ich frage mich schon lange, ob Tesseract in diesem Bereich wirklich noch die beste Lösung auf aktuellem Stand ist.
Subjektiv wirkt es ziemlich unzureichend, und schon um 2019 herum hatte ich angesichts der Fortschritte in Computer Vision das Gefühl, Texterkennung müsste eigentlich ein weitgehend gelöstes Problem sein.
Sie sollte besser sein als ein Mensch, aber selbst Scans von Belegen in niedriger Auflösung wurden nicht korrekt umgewandelt, besonders wenn sie nicht auf Englisch waren.
Vielleicht benutze ich es auch einfach nicht richtig.
Mich würde interessieren, wie genau du es verwendest.
Mir fällt auf, dass Tesseract immer häufiger erwähnt wird.
Als ich es vor 10 bis 15 Jahren bei eingescannten wissenschaftlichen Arbeiten ausprobiert habe, waren die Ergebnisse enttäuschend, und die manuelle Nachbearbeitung war kaum weniger Aufwand als direktes Abtippen.
Daher wurde Tesseract für mich zum Synonym für „nicht den Versuch wert“, aber es könnte mit der Zeit besser geworden sein, also sollte ich es vielleicht noch einmal ausprobieren.
Bei allgemeiner Erkennung inklusive ungewöhnlicher Schriftarten oder schlechter Bildqualität hat EasyOCR bei mir deutlich bessere Ergebnisse geliefert.
Intern nutzt es Tesseract und ist wirklich hervorragend.
Vor 15 Jahren musste man ziemlich viel vorverarbeiten, um wenigstens halbwegs brauchbare Ergebnisse zu bekommen; heute bekomme ich auch ohne Vorverarbeitung gute Resultate.
Ich habe es selbst ausprobiert, und es funktioniert ziemlich gut
Da es eine Flatpak-App ist, braucht sie für den vollständigen Funktionsumfang ein Desktop-Portal, aber mit meiner bestehenden
xdg-desktop-portal-wlr-Konfiguration lief es ohne zusätzliche Einstellungen problemlosIn X11- oder Wayland-Umgebungen mit einer
xdg-desktop-portal-Konfiguration, die die Screenshot API unterstützt, dürfte es ohne Weiteres funktionierenDie Ergebnisse sind uneinheitlich, aber nicht schlecht; bei sauber lesbarem Text gibt es meist nur Probleme mit Leerzeichen oder gelegentliche Fehler, sodass es nützlich sein kann, um Text etwa aus Fehlerdialogen zu kopieren
Allerdings ist unter Linux der Text in Fehlerdialogen ohnehin häufiger auswählbar, und die Standard-MessageBox von Windows reagiert auf Ctrl+C
Ich nutze als ähnliche App Frog und bin damit sehr erfolgreich unterwegs
https://getfrog.app
.deb, kein brewFür macOS gibt es ein Utility, das mehr kann, als ein Dokument in Preview zu öffnen und zu versuchen, Text auszuwählen
https://github.com/schappim/macOCR
Ich mag den Autor
Danach kann man das Bild über den Papierkorb oben rechts löschen, und Cmd-A funktioniert ebenfalls
Ein Beispiel, das ich für diesen Kommentar ausprobiert habe, ist hier: https://imgur.com/a/q0NvcS6
Unter iOS habe ich mir eine ähnliche Lösung als Kurzbefehl gebaut, der mit dem Action Button verknüpft ist
In manchen Apps ist das Kopieren von Text nicht einfach, oder der Text ist in einer Fremdsprache; der Kurzbefehl macht einen Screenshot, extrahiert den Text, erkennt automatisch die Ausgangssprache, übersetzt ihn ins Englische und zeigt Original und Übersetzung in Quick View an, sodass man sie auswählen und kopieren kann
Eine Beispielimplementierung kann man hier ausprobieren: https://www.icloud.com/shortcuts/f420d24e4960415da1a43f230abfce39
Nebenbei kann man in aktuellen iOS-Versionen auch in der Fotos-App ein Foto öffnen und Text im Bild per Hand auswählen und kopieren
Ich habe ihn über den Teilen-Button bei einem Bild und dann über das Share Sheet ausprobiert, und es hat funktioniert; wenn man aber ohnehin schon ein Bild übergibt, ist der Screenshot-Schritt redundant
Es heißt zwar „für den Linux Desktop“, aber das ist ein Flatpak, und nicht alle Linux-Distributionen liefern Flatpak standardmäßig mit
Ich werde es einmal in einer Fedora-VM laufen lassen; solche Tools habe ich schon viele gesehen, und die meisten nutzen Tesseract
Bei groben oder verrauschten Bildern sowie bei gebogenen oder schräg stehenden Buchstaben scheitern sie deutlich, und CAPTCHAs lösen sie nicht
https://tesseract-ocr.github.io/tessdoc/Home.html
Genauer gesagt heißt das eher, dass der Autor kein Paket für deine Distribution gebaut hat und auch sonst niemand Zeit und Lust hatte, es zu paketieren
Der Maintainer, den du suchst, könntest genau du sein
Wenn es nur ein
.debgäbe, könnte man sagen, dass es außerhalb von Ubuntu/Debian nicht funktioniert, und das wäre ein deutlich größerer Nachteil