Lesen und Vergleichen von Bildern¶
Dieser Dialog wird angezeigt, wenn Sie aus dem Medienzugriff-Tab einen Lesen-Testschritt für ein Bild oder eine Maske zum Testfall hinzufügen.
Der Dialog ist in vier Sektionen gegliedert:
Referenz
Hier kann das referenzierte Mapping-Item angegeben oder verändert werden.
Auf der rechten Seite des Dialogs wird das aktuell von der Kamera ausgelesene Bild angezeigt. Wenn eine Maske angewendet wurde, wird der maskierte Bereich hervorgehoben. Die Vorschau kann aktualisiert werden, indem Sie über einen Rechtsklick auf das Bild im Kontextmenü den Eintrag Aktualisieren wählen.
Filter
In diesem Bereich können Filter ausgewählt werden. Mit Filtern kann ein Bild nach dem Lesen von der Kamera manipuliert werden. Beispielsweise kann das Bild in ein Schwarz-Weiß-Bild umgewandelt oder die Schärfe erhöht werden. Filter werden vor dem Vergleich mit dem Erwartungswert bzw. vor der Analyse von Text angewendet. Mit der Checkbox können die Filter auf das Vergleichsbild wahlweise angewendet oder nicht angewendet werden.
In der linken Box befindet sich eine Übersicht der aktuell auf das Bild angewendeten Filter. Die Filter werden von oben nach unten angewendet.
In der rechten Box werden die Parameter des aktuell selektierten Filters aufgelistet. Unter „Wert“ können neben direkt eingegebenen Werten (Zahlen, Strings) auch Testfallvariablen und API-Aufrufe verwendet werden.
Auf der rechten Seite wird das gelesene, maskierte Bild mit applizierten Filtern angezeigt. Falls ein oder mehrere Filter nicht angewendet werden können, wird stattdessen ein Warndreieck als Bild angezeigt. Der Tooltip des Elements enthält Informationen zu dem Fehler.
Bild speichern
Hier kann optional ein Variablenname eingegeben werden, um das gelesene, maskierte und gefilterte Bild in einer Testfallvariable zu speichern.
Bewertung¶
Hier kann der Erwartungswert definiert werden. Es gibt drei unterschiedliche Typen von Erwartungswerten. Diese Typen können in dem Dropdown-Menü oben links im Tab „Vergleich“ ausgewählt werden.
Erwartungstyp Image
Das gelesene Bild wird mit einem oder mehreren Referenzbildern verglichen. Referenzbilder können zum Beispiel mit dem Maskeneditor erstellt werden.
Die Menge der Referenzbilder ergibt sich durch die Auswertung eines Referenz-Ausdrucks. Je nach gewählten Referenz-Typ sind hierfür verschiedene Eingaben zulässig:
Referenz-Typ |
Zulässige Ausdrücke |
Beispiele |
|---|---|---|
Objekt |
Image-Variable oder Liste von Image-Variablen |
|
Workspace |
String oder eine Liste von Strings. Diese Strings müssen Pfade entsprechend der glob-Syntax sein und werden bei der Ausführung ausgehend vom aktuellen Workspaceverzeichnis aufgelöst. |
|
Bildverzeichnis (nur bei Bild- Lesen verfügbar) |
String oder eine Liste von Strings. Diese Strings müssen Pfade der glob-Syntax sein und werden bei der Ausführung ausgehen vom Bildverzeichnis des zugehörigen Geräts aufgelöst. |
|
Des Weiteren können zwei Toleranz-Werte für den Bildvergleich definiert werden:
Farbtoleranz: Pixel, deren Farbwerte um weniger als X voneinander abweichen, werden als „gleich“ betrachtet. X ist hierbei eine Zahl zwischen 0 und 255. Bei 0 müssen zwei Pixel exakt die gleichen Farbwerte besitzen. Wenn 255 angegeben wird, werden alle Pixel als gleich betrachtet. Die Abweichung wird auf jedem Kanal - rot, grün und blau - betrachtet.
Toleranz: Hier kann angegeben werden, wieviele Pixel im gesamten Bild voneinander abweichen dürfen, damit zwei Bilder als „gleich“ betrachtet werden. Die Angabe erfolgt in Prozent. 0% bedeutet, dass alle Pixel übereinstimmen müssen. 100% bedeutet, dass kein Pixel übereinstimmen muss - zwei Bilder werden in diesem Fall immer als „gleich“ betrachtet. Die Toleranz wird nach der Farbtoleranz betrachtet.
Auf der rechten Seite wird das Vergleichsbild angezeigt. Zuvor definierte Filter werden auch auf dieses Vergleichsbild angewendet.
Erwartungstyp Prompt
Hier kann ein Prompt für ecu.test agent definiert werden, den der Agent zur Laufzeit überprüfen soll. Beispielsweise könnte hier der Prompt „Im Bild ist ein Auto zu sehen.“ definiert werden. Der Agent wird dann das gelesene Bild analysieren und entsprechend der Aussage als SUCCESS oder FAILED bewerten. Es ist auch möglich, die Anfrage für komplexere Analysen mit Referenzbildern zu erweitern. In diesem Fall können die Referenzbilder aus den gleichen Quellen wie beim Erwartungstyp „Image“ angegeben werden. Es ist jedoch zu beachten, dass die Referenzbilder hier nicht im klassischen Sinne pixelgenau mit dem gelesenen Bild verglichen werden, sondern als zusätzliche Informationen für die Analyse des Agenten dienen. Tests wie „Das Referenzbild ist im gelesenen Bild zu sehen.“ oder „Das gelesene Bild ist ähnlich zum Referenzbild.“ können hiermit durchgeführt werden. Bei mehreren Referenzbildern kann mittels Index, beginnend bei 0 auf das jeweilige Bild verwiesen werden. Also beispielsweise „Referenzbild 0 ist im gelesenen Bild zu sehen, Referenzbild 1 aber nicht.“.
Erwartungstyp String
Nach dem Anwenden der Filter wird eine Texterkennung (OCR) auf das gelesene Bild angewendet. Der erkannte Text kann dann mit dem Erwartungswert verglichen werden.
Sollten nicht alle Texte zufriedenstellend erkannt werden, ist es eventuell notwendig, das Bild mit Filtern oder Masken vorzuverarbeiten. Im Allgemeinen liefert ein schwarzer Text auf weißem Grund die beste Erkennungsrate. Die Skalierung des Bildes und damit der Textgröße, wirkt sich ebenfalls auf die Erkennungsrate aus. Die Höhe eines kleinen „x“ sollte bestenfalls im Bereich von 10-30 Pixel liegen, wobei hier auch die verwendete Schriftart eine Verschiebung der Werte bewirken kann. Auch das Eingrenzen des Bildes auf die entsprechende Textstelle mittels einer Maske kann die Texterkennung verbessern.
Alternativ kann auf einer Image-Variable die API-Methode FindText aufgerufen werden. Diese wendet bereits diverse Vorverarbeitungen an, um nach Positionen von Textstellen zu suchen.
Erwartungstyp Unspecific
Hier kann der Erwartungswert direkt angegeben werden. „value“ stellt hierbei ein Image-Objekt dar. Die Schnittstelle des Image-Objekts ist in der API-Dokumentation hinterlegt.
Weitere Informationen