Bevor ich einen Nachmittag damit verbringe, dies selbst zu schreiben, dachte ich, ich würde fragen, ob bereits eine Implementierung verfügbar ist - auch nur als Referenz. Das erste Bild ist ein Beispiel für eine Bitmap-Maske, die ich in eine Liste von Rechtecken umwandeln möchte. Ein schlechter Algorithmus würde jedes festgelegte Pixel als 1x1-Rechteck zurückgeben. Ein guter Algorithmus würde wie das zweite Bild aussehen, in dem die Koordinaten der orangefarbenen und roten Rechtecke zurückgegeben werden. Die Tatsache, dass sich die Rechtecke überlappen, spielt keine Rolle, nur dass nur zwei zurückgegeben werden.
Zusammenfassend wäre das ideale Ergebnis diese beiden Rechtecke (x, y, w, h): [ { 3, 1, 2, 6 }, { 1, 3, 6, 2 } ]