---
title: "Anleitung: Ein Teil in einem Kamerabild finden"
product: "LumiScan Template Finder"
component: "lumiscan-template-finder-de"
version: "1.1.0"
display_version: "1.1.0.7"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-template-finder-de/1.1.0/how-tos/match-a-part-from-a-camera-image.html"
---

# Anleitung: Ein Teil in einem Kamerabild finden – LumiScan Template Finder

Durchgängige Anleitung von einer laufenden Kamera bis zum Matching-Ergebnis, mit dem Modul, das die Anwendung bei der Installation für Sie anlegt.

## Bevor Sie beginnen

- LumiScan Cam Driver oder eine andere Bildquelle läuft auf demselben Gerät - derselben ctrlX CORE oder demselben ctrlX IPC oder demselben PC - und hat ein Bild aufgenommen.
- Sie kennen die Adresse ihres Bildknotens. Für Kamera 1 des Cam Driver:
  ```
  hdvisionsystems/lumiscan-cam-driver/camera1/output/image
  ```

Alle Pfade sind im Folgenden relativ zur Anwendung:

```
hdvisionsystems/lumiscan-template-finder/
```

Das Erstellen einer Vorlage ist eine Operation der gesamten Anwendung, unter `system/`; die Suche gehört zum Modul `module-1`.

## Schritt 1 - Beide Operationen auf die Kamera richten

Setzen Sie die Bildadresse bei beiden Operationen:

```
system/create-template/input/input-image-address = hdvisionsystems/lumiscan-cam-driver/camera1/output/image
module-1/find-template/input/input-image-address = hdvisionsystems/lumiscan-cam-driver/camera1/output/image
```

Es sind absichtlich getrennte Knoten - eine Vorlage kann aus einer Kamera ausgeschnitten und in einer anderen gesucht werden.

## Schritt 2 - Ein Bild mit dem Teil im Sichtfeld aufnehmen

Lösen Sie in der Kameraanwendung eine Aufnahme aus, mit dem Teil so positioniert, wie es in der Produktion liegen wird. Die Vorlage wird aus diesem Bild ausgeschnitten; seine Beleuchtung und sein Arbeitsabstand werden damit zur Referenz.

## Schritt 3 - Die Vorlage ausschneiden

Ermitteln Sie die Pixelkoordinaten einer Region, die das Teil enthält. Am einfachsten lesen Sie sie in der Bildvorschau der Kameraanwendung ab.

Dann:

```
system/create-template/input/crop/startX    = 100
system/create-template/input/crop/startY    = 200
system/create-template/input/crop/width     = 190
system/create-template/input/crop/height    = 100
system/create-template/input/template-name = screw
```

Schreiben Sie auf `system/create-template/execute` und lesen Sie dann `system/create-template/output/status-code`.

`1` bedeutet, dass es funktioniert hat, und `system/create-template/output/template-path` zeigt jetzt `templates/screw.png`.

Erhalten Sie `-5`, passt die Region nicht in das Bild; `output/status-text` nennt die tatsächliche Bildgröße.

## Schritt 4 - Anhand desselben Bilds prüfen

Bevor Sie etwas ändern, durchsuchen Sie das Bild, aus dem Sie eben ausgeschnitten haben:

```
module-1/find-template/input/template-name = screw
```

Schreiben Sie auf `module-1/find-template/execute` und lesen Sie `module-1/find-template/output/result`.

Sie sollten genau einen Treffer erhalten, dessen `oriented_bounding_box` in der Mitte der angegebenen Region liegt - (195, 250) für die obigen Werte - mit einer Konfidenz nahe 1.

> [!TIP]
> Diese Prüfung ist die halbe Minute wert, die sie dauert. Wird die Vorlage nicht einmal in dem Bild gefunden, aus dem sie stammt, liegt das Problem an der Region oder der Bildadresse, und keine Abstimmung der Parameter wird das beheben.

## Schritt 5 - Ein echtes Bild durchsuchen

Nehmen Sie ein neues Bild mit dem Teil in einer anderen Position auf und suchen Sie erneut. Der Treffer sollte dem Teil folgen.

Wird nichts gefunden, hat das Teil gegenüber der Vorlage wahrscheinlich Größe oder Ausrichtung geändert. Gehen Sie zu Schritt 6.

## Schritt 6 - Die Suche bei Bedarf erweitern

Nur wenn Schritt 5 fehlgeschlagen ist:

**Das Teil dreht sich.** Setzen Sie einen Drehungsbereich mit grober Schrittweite:

```
module-1/find-template/input/rotation/max-rot  = 360
module-1/find-template/input/rotation/step-rot = 5
```

**Das Teil ändert den Abstand.** Setzen Sie einen Skalierungsbereich:

```
module-1/find-template/input/scale/min-scale  = 0.9
module-1/find-template/input/scale/max-scale  = 1.1
module-1/find-template/input/scale/step-scale = 0.05
```

Jede Kombination ist ein eigener Durchlauf über das Bild; beide Einstellungen zusammen sind also 72 x 5 = 360 Durchläufe. Erweitern Sie einen Bereich nach dem anderen und hören Sie auf, sobald das Teil zuverlässig gefunden wird.

Wenn die Erweiterung des Bereichs Treffer an falschen Stellen erzeugt, erhöhen Sie den Schwellwert:

```
module-1/find-template/input/match-thresh = 0.95
```

Der Grund ist in [Die Suche abstimmen](https://docs.hdvisionsystems.com/de/lumiscan-template-finder-de/1.1.0/lumiscan-template-finder/tuning-the-search.html) erklärt.

## Schritt 7 - Die Einstellungen behalten

Die Einstellungen sind wirksam, aber noch nicht dauerhaft. Damit sie nach einem Neustart wiederhergestellt werden:

```
system/save-module-inputs/input/module-id = module-1
```

Schreiben Sie auf `system/save-module-inputs/execute`.

Die Vorlagendatei selbst ist bereits dauerhaft - sie ist eine Datei im Konfigurationsverzeichnis der Anwendung, das auf ctrlX OS Teil der aktiven Solution ist.

## In der Produktion

Ein Zyklus ist jetzt ein einziger Schreibvorgang auf `module-1/find-template/execute`, gefolgt von:

1. `module-1/find-template/output/status-code` lesen - negativ bedeutet, dass die Suche fehlgeschlagen ist
2. `module-1/find-template/output/result` lesen - `best_score` und `matches[0]` liefern den besten Treffer

Zwischen den Zyklen muss nichts weiter gesetzt werden. Wie jedes Bild der Kamera ohne einen Aufruf pro Bild durchsucht wird, steht in [Vorlagen in einem Bild-Stream finden (experimentell)](https://docs.hdvisionsystems.com/de/lumiscan-template-finder-de/1.1.0/lumiscan-template-finder/processing-an-image-stream.html).
