# Circle Detector

Dieser Funktionsblock wird verwendet, um kreisförmige Muster innerhalb eines Eingabebildes zu erkennen. Er nutzt die Hough-Kreis-Transformationstechnik, um Kreise in Bildern effektiv zu lokalisieren und zu umreißen.

## 📥 Eingänge <a href="#inputs" id="inputs"></a>

`Image Any` Dieser Eingang akzeptiert beliebige Bilddaten, die kreisförmige Muster zur Erkennung enthalten können.

## 📤 Ausgänge <a href="#outputs" id="outputs"></a>

`Result` Das Ausgabe Bild zeigt die erkannten Kreise, die zur einfachen Identifizierung markiert sind.

`Positions` Die Koordinaten der erkannten Kreise, die eine weitere Verarbeitung oder Analyse ermöglichen.

`Number of Circles` Die Gesamtanzahl der im Bild erkannten Kreise.

`Circles` Detaillierte Informationen über die erkannten Kreise im Format, das durch den Kreis-Typ angegeben wird. Dies kann verschiedene Attribute der erkannten Kreise umfassen.

## 🕹️ Steuerungen <a href="#controls" id="controls"></a>

`dp` Ein Schieberegler zur Anpassung des inversen Verhältnisses der Auflösung des Akkumulators zur Bildauflösung, die während der Kreiserkennung verwendet wird.

`Edge Detection` Ein Schieberegler zur Einstellung des höheren Schwellenwertes von den beiden, die an den Canny-Kanten-Detektor übergeben werden (der niedrigere ist doppelt so klein).

`Threshold` Dieser Schieberegler setzt den Schwellenwert für die Kreiserkennungsmethode.

`Min Distance` Ein Parameter, der die minimale Distanz zwischen den Zentren der erkannten Kreise bestimmt.

`Min Radius` Ein Schieberegler zur Angabe des minimalen Radius der zu erkennenden Kreise, der als Prozentsatz der Breite des Eingabebildes definiert wird.

`Max Radius` Ein Schieberegler zur Festlegung des maximalen Radius der zu erkennenden Kreise, ebenfalls als Prozentsatz der Breite des Eingabebildes definiert.

## 🎨 Funktionen <a href="#features" id="features"></a>

`Flexible Parameters` Benutzer können mehrere Parameter feinjustieren, um die Kreiserkennung für verschiedene Arten von Eingabebildern zu optimieren.

`Visual Feedback` Das resultierende Ausgabe Bild markiert die erkannten Kreise klar und bietet visuelles Feedback in Echtzeit über den Erkennungsprozess.

## 📝 Nutzungshinweise <a href="#usage" id="usage"></a>

1. **Connect Input**: Verbinden Sie Ihr Eingabebild, das Kreise enthalten kann, mit dem Eingang `Image Any`.
2. **Adjust Parameters**: Verwenden Sie die Schieberegler, um geeignete Parameter einzustellen, um die Kreiserkennung entsprechend den spezifischen Merkmalen Ihres Bildes zu optimieren.
3. **Evaluate**: Führen Sie den Block aus, um Kreise zu erkennen. Die Ausgabe umfasst ein Bild mit erkannten Kreisen und relevanten Daten über deren Positionen und Zählungen.

## 📊 Bewertung <a href="#evaluation" id="evaluation"></a>

Bei der Ausführung analysiert dieser Funktionsblock das Eingabebild und gibt eine Ausgabe mit den identifizierten Kreisen zurück, die darauf gezeichnet sind, zusammen mit deren Positionen und Zählungen.

## 💡 Tipps und Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

<details>

<summary>Kanten-Erkennung anpassen</summary>

Wenn Sie Schwierigkeiten haben, Kreise zu erkennen, versuchen Sie, den Parameter `Edge Detection` basierend auf der Bildklarheit höher oder niedriger anzupassen.

</details>

<details>

<summary>Unterschiedliche Radiuswerte testen</summary>

Experimentieren Sie mit verschiedenen Werten für `Min Radius` und `Max Radius`, basierend auf den erwarteten Größen von Kreisen im Eingabebild, um optimale Ergebnisse zu erzielen.

</details>

<details>

<summary>Vorverarbeitung verwenden</summary>

Sie können Vorverarbeitungstechniken wie die Blurr- oder Image Threshold-Blöcke verwenden, um die Kanten im Bild zu verbessern, was es einfacher macht, kreisförmige Muster zu erkennen.

</details>

<details>

<summary>Genauere Erkennung</summary>

Die Verwendung eines höheren Wertes für `Min Distance` kann helfen, die Erkennung von false positives zu reduzieren, indem Überlappungen bei Erkennungen vermieden werden.

</details>

## 🛠️ Fehlersuche <a href="#troubleshooting" id="troubleshooting"></a>

<details>

<summary>Keine Kreise erkannt</summary>

Wenn keine Kreise erkannt werden, versuchen Sie, die Parameter anzupassen, insbesondere die Einstellungen für `Threshold` und `Min Radius`, um eine geeignete Konfiguration für Ihr Eingabebild zu finden.

</details>

<details>

<summary>Weiche oder verschwommene Kreise</summary>

Wenn Kreise weich oder nicht gut definiert erscheinen, ziehen Sie in Betracht, eine Vorverarbeitungsmethode wie `Gaussian Blur` auf Ihr Eingabebild anzuwenden, bevor es diesen Block erreicht.

</details>
