---
title: "Flächen erkennen"
product: "LumiScan Area Detector"
component: "lumiscan-area-detector-de"
version: "1.2.0"
display_version: "1.2.0.6"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-area-detector-de/1.2.0/lumiscan-area-detector/detecting-areas.html"
---

# Flächen erkennen – LumiScan Area Detector

`<module>/detect-area` durchsucht ein Bild, einmal, und meldet die Regionen, die es findet.

## Ausführen

Setzen Sie die Bildadresse und führen Sie aus:

```
module-1/detect-area/input/input-image-address = hdvisionsystems/lumiscan-cam-driver/camera1/output/image
write module-1/detect-area/execute
```

Lesen Sie dann `output/status-code` und `output/result`.

Alles andere hat einen funktionierenden Standardwert, dieser erste Durchlauf zeigt Ihnen also, ob überhaupt etwas gefunden wird. Das Abstimmen folgt: siehe [Die Erkennung abstimmen](https://docs.hdvisionsystems.com/de/lumiscan-area-detector-de/1.2.0/lumiscan-area-detector/tuning-the-detection.html) und [Eine Szene analysieren](https://docs.hdvisionsystems.com/de/lumiscan-area-detector-de/1.2.0/lumiscan-area-detector/analysing-a-scene.html) zum Einstellen des Schwellwerts.

## Das Ergebnis

`output/result` ist ein `area_detect_result`-Flatbuffer.

| Feld | Bedeutung |
| --- | --- |
| `blobs[].x`, `.y` | Mittelpunkt der Region. |
| `blobs[].area` | [Pixel^2] Pixel, die die Region bedeckt, gezählt - nie aus einer angepassten Form abgeleitet. |
| `blobs[].label` | Welche Region dies in `output/blob-labels` ist - so wird eine gemeldete Fläche ihren Pixeln zugeordnet. |
| `blobs[].bbox_x/y/width/height` | Eng anliegendes Rechteck um die Region. |
| `blob_count` | Wie viele Regionen, für ein Steuerungsprogramm, das nur eine Anzahl braucht. |
| `total_area` | [Pixel^2] Summe über alle Regionen - die zentrale Zahl für eine Bedeckungsprüfung. |
| `largest_index`, `largest_area` | Die größte Region. |
| `image_width`, `image_height` | Der durchsuchte Bereich - das ganze Bild, sofern kein Crop gesetzt war. |
| `preprocess_method` | `NONE`, `LOG`, `DOG` oder `DOH`, wie angewendet. |
| `timestamp` | Mikrosekunden seit der Epoche, wann der Durchlauf abgeschlossen wurde. |

Die Regionen sind nach Fläche sortiert, `blobs[0]` ist also die größte.

`total_area` ist meist die Zahl, auf die Sie reagieren: Bedeckungs-, Verunreinigungs- und Füllstandsprüfungen fragen alle "wie viel", nicht "wie viele".

## Farbbilder

Es kann ein Grau- oder ein Farbbild hineingehen. Schwellwertbildung und Zusammenhangskomponenten sind Einkanal-Operationen, ein Farbbild wird also umgewandelt und wie jedes andere gemessen. Auf ctrlX OS liefert ein ctrlX-Bildknoten drei Farbkanäle, egal welche Kamera angeschlossen ist; eine Graustufenkamera erzeugt also drei identische Kopien. Es gibt kein Flag, und eine Region wird einmal gemeldet, wie viele Kanäle auch immer ankamen.

## Die Suche einschränken

`input/crop/{startX, startY, width, height}` beschränkt die Suche auf einen Teil des Bildes. Eine Breite oder Höhe von null reicht bis zum entsprechenden Rand; die Standardregion mit lauter Nullen durchsucht also alles, und `startX=100` mit Nullgrößen sucht von dort bis zur unteren rechten Ecke.

Zwei Gründe, sie zu verwenden: Geschwindigkeit, und das Ausschließen von Bereichen, in denen keine Region sein kann, was das Zählen von Hintergrundstörungen vermeidet.

Eine Region, die über einen Rand hinausreicht, wird abgelehnt und nicht beschnitten; die Meldung nennt die Eingabe und die Grenze, die sie verletzt hat.

## Vorverarbeitung

`input/preprocess/method` wendet vor der Erkennung einen Filter an:

| Methode | Was sie tut |
| --- | --- |
| `NONE` | Der Standard. |
| `LOG` | Laplacian of Gaussian - Weichzeichnen, dann eine zweite Ableitung; hebt Regionen einer durch das Sigma festgelegten Größe hervor. |
| `DOG` | Difference of Gaussians - zwei Weichzeichnungen voneinander abgezogen, ein Bandpass. `sigma-first` muss sich von `sigma-second` unterscheiden. |
| `DOH` | Determinant of Hessian - kombinierte zweite Ableitungen. `kernel-size` muss 1, 3, 5 oder 7 sein. |

Nur die Parameter der gewählten Methode werden gelesen, und nur sie werden geprüft.

## Die Regionen selbst

Das Ergebnis enthält Zahlen, keine Pixel. Die Pixel stehen in `output/blob-labels`, das jeder Durchlauf veröffentlicht: eine Regionsnummer pro Pixel, und `blobs[].label` sagt, welche Nummer welche Region ist. Siehe [Das Label-Bild](https://docs.hdvisionsystems.com/de/lumiscan-area-detector-de/1.2.0/lumiscan-area-detector/the-label-image.html).

## Ein leeres Ergebnis

Eine leere `blobs`-Liste mit `status-code` 1 bedeutet, dass **keine Regionen zutrafen** - sonst nichts. Jeder andere Grund, aus dem ein Durchlauf nichts erzeugen könnte, wird vor der Erkennung abgefangen und als negativer Statuscode gemeldet. Siehe [Ausführungsstatus](https://docs.hdvisionsystems.com/de/lumiscan-area-detector-de/1.2.0/lumiscan-area-detector/execution-status.html).
