Hi,
spontan fiele mir nur folgende Methode ein:
- gehe das Bild Pixel für Pixel durch, bis Du auf einen Pixel der gewünschten Farbe stößt. Du speicherst für den gefundenen Bereich immer die Koordinaten x_links, y_oben, x_rechts und y_unten. Zusätzlich brauchst Du auch einen Threashold, wie weit die Pixel maximal von einander entfernt sein dürfen (für das Beispiel habe ich mal einen Threashold von 2px angenommen).
- gehe ausgehend von den "Kanten" deines Rechteckes Threashold Pixel nach außen (also hier: 2 Pixel). Sofern Du auf einen weiteren Pixel stößt, erweiterst Du deinen Rahmen entsprechend. Wenn keine Pixel gefunden werden, kann der Vorgang Stufenweise mit weniger Abstand als dem Threashold wiederholt werden.
- Wiederholung, bis keine Pixel mehr gefunden werden.
- Mittelpunktbestimmung durch Halbierung der Maße des Rahmens.
Nachteil: Bei größeren Pixelhaufen hast Du bei jedem Durchlauf u.U. sehr viele Pixel zu testen (nämlich: Rahmenbreite*Threashold*2 + Rahmenhöhe*Threashold*2). Bei kleineren Anhäufungen sollte es allerdings noch im Rahmen bleiben.
Die angehängte Grafik veranschaulicht den Fortschritt des "Rahmens".
Gruß