Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 15 Zeichen erkennen/unterscheiden (OCR, Bildervergleich?!) (https://www.delphipraxis.net/100159-15-zeichen-erkennen-unterscheiden-ocr-bildervergleich.html)

trethupe 23. Sep 2007 19:27


15 Zeichen erkennen/unterscheiden (OCR, Bildervergleich?!)
 
Hallo!

Für mein geplantes Projekt, soll an einer Stelle des Bildschirms eine Information, die aus EINEM von 15 verschiedenen Zeichen besteht, erkannt werden. (Um das ganze mal einfacher zu machen sagen wir einfach es seien Zahlen und zwar die Zahlen 1 bis 15.) Diese Information soll dann in meinem Programm weiterverarbeitet werden.

Eine OCR Einbindung wäre meiner Meinung nach mit Kanonen auf Spatzen geschossen, da es sich ja immer um die gleichen Zeichen in der gleichen Schriftart/Größe handelt und nichts dynamisch immer wieder neu erkannt werden muss.

Eine andere Idee die mir gekommen ist, wäre es die schwarzen Zeichen auf weißem Hintergrund zu unterscheiden, indem man die schwarzen Pixel zählt, was allerdings voraussetzt, dass alle Zeichen aus unterschiedliche vielen Pixel bestehen, was ich ehrlich gesagt bezweifle.

Ansonsten bliebe noch ein Screenshot von jedem Zeichen als JPG zu speichern und mit dem Bildschirm zu vergleichen, wobei ich Probleme sehe, falls die Information mal 2 Pixel weiter links auf dem Bildschirm steht (nicht 100% ausgeschlossen). Ob ein Vergleich auf Ähnlichkeit etwas bringt, weißich ehrlich gesagt nicht.

Habt ihr andere Ideen, wie man ohne viel Aufwand (<->OCR) und relativ "failsafe" (<->Vergleich, Pixel zählen) an diese Information kommen könnte (eine direkter Import der Zeichen ist ausgeschlossen,komme nur an die Grafikausgabe)

Vielen Dank :cheers: :bounce1:

SirThornberry 23. Sep 2007 19:41

Re: 15 Zeichen erkennen/unterscheiden (OCR, Bildervergleich?
 
du hast einmal das bild auf dem Bildschirm und dann 15 zeichen mit denen du vergleichen musst.

Die Vorgehensweise ist wie folgt.
- Du gehst alle Pixel des bereiches auf dem Bildschirm durch und schaust ob auf dem Zeichen mit dem du vergleichst in X-Pixel toleranz auch ein Pixel (zum Beispiel schwarz) gesetzt ist.

- Wenn alle pixel auf dem Bildschirm in dem Bild vorkommen mit dem du vergleichst musst du es noch umgekehrt machen. Also alle Pixel des Vergleichsbildes durchgehen und schauen ob auf dem Bildschirm in dem Bereich im Toleranzbereich X auch alle Pixel gesetzt sind.

marabu 24. Sep 2007 07:26

Re: 15 Zeichen erkennen/unterscheiden (OCR, Bildervergleich?
 
Herzlich willkommen in der Delphi-PRAXiS, trethupe.

Unter den von dir genannten Voraussetzungen könnte ich mir folgendes vorstellen: Deine Vergleichsbilder kannst du in einer ImageList vorhalten. Für jede Bitmap berechnest du einen Hash-Wert und speicherst den in einer StringList als Name-Value-Paar (Hash=Zeichen). Wenn du die aktuelle Bitmap abgreifst, dann berechnest du deren Hash-Wert und schaust mit StringList.IndexOfName() nach um welches Zeichen es sich handelt. Eventuell empfiehlt es sich die Bilder vorher auf Schwarz-Weiß umzurechnen.

Freundliche Grüße vom marabu

mimi 24. Sep 2007 18:29

Re: 15 Zeichen erkennen/unterscheiden (OCR, Bildervergleich?
 
Zeichnest du die Grafik(Die zahlen) Selber oder was genau hast du vor ?

Bekommst du eine Fertige Grafik wo irgendwo eine Zahl drauf steht und dein Programm soll sie dann weiter verarbeiten ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz