Guten Abend liebe Forenbewohner,
ich hätte gern einen rechteckigen Bereich um helle Punkte gezogen. Aber der Reihe nach:
Was ich habe:
- Ein Grauwert-Bild im Arbeitsspeicher (Grauwerte in einem eindimensionalen Array um genau zu sein, aber das spielt eigentlich keine Rolle)
Was ich gern hätte:
- die Koordinaten eines (kleinstmöglichen) Rechteckes, das mehr als 50% aller Helligkeitswerte einschließt. Beispiel (0 sei schwarz, 255 weiß):
Die Summe aller Werte ist hier 960 und das gesuchte Rechteck von Zeile 2, Spalte 2 bis Zeile 3, Spalte 3, was eine Summe der Werte von 700 hätte (was wiederum mehr als 50% ist ;-) )
Was ich mir überlegt hab:
- "brute force"-Ansatz: 1. Summe aller Grauwerte ausrechnen. 2. links oben anfangen und so lange ein imaginäres Rechteck vergrößern, bis 50% aller Grauwerte drin sind. Dann ein Punkt nach rechts und wieder vergrößern. ... Am Schluß schauen, welches Rechteck die kleinste Fläche hat.
Vorteil: das minimale Rechteck wird sicher gefunden.
Nachteil: könnte recht langsam werden ;-)
- irgendwie den "Schwerpunkt" des Bildes suchen (zum Beispiel für jeden Pixel eine imaginäre Fläche der Größe seines Grauwertes annehmen und dann nach den Regeln zum Zusammenfassen von Schwerpunkten verrechnen) und von da aus dann das Rechteck so lange wachsen lassen, bis 50% der Grauwerte drin sind.
Vorteil: schneller als "brute force"
Nachteil: evtl. wird das minimale Rechteck nicht gefunden (wenn ich mich nicht täusche)
- ? Jetzt hörts leider schon auf... Mir fällt nix mehr ein
Für Ideen, Begriffe um ne Suchmaschine damit zu füttern oder sogar fertige Algorithmen wäre ich sehr dankbar.
In der Hoffnung, mich verständlich ausgedrückt zu haben,
madboy
ich hätte gern einen rechteckigen Bereich um helle Punkte gezogen. Aber der Reihe nach:
Was ich habe:
- Ein Grauwert-Bild im Arbeitsspeicher (Grauwerte in einem eindimensionalen Array um genau zu sein, aber das spielt eigentlich keine Rolle)
Was ich gern hätte:
- die Koordinaten eines (kleinstmöglichen) Rechteckes, das mehr als 50% aller Helligkeitswerte einschließt. Beispiel (0 sei schwarz, 255 weiß):
Code:
0 10 250 0 0
0 250 50 0 0
0 150 250 0 0
Was ich mir überlegt hab:
- "brute force"-Ansatz: 1. Summe aller Grauwerte ausrechnen. 2. links oben anfangen und so lange ein imaginäres Rechteck vergrößern, bis 50% aller Grauwerte drin sind. Dann ein Punkt nach rechts und wieder vergrößern. ... Am Schluß schauen, welches Rechteck die kleinste Fläche hat.
Vorteil: das minimale Rechteck wird sicher gefunden.
Nachteil: könnte recht langsam werden ;-)
- irgendwie den "Schwerpunkt" des Bildes suchen (zum Beispiel für jeden Pixel eine imaginäre Fläche der Größe seines Grauwertes annehmen und dann nach den Regeln zum Zusammenfassen von Schwerpunkten verrechnen) und von da aus dann das Rechteck so lange wachsen lassen, bis 50% der Grauwerte drin sind.
Vorteil: schneller als "brute force"
Nachteil: evtl. wird das minimale Rechteck nicht gefunden (wenn ich mich nicht täusche)
- ? Jetzt hörts leider schon auf... Mir fällt nix mehr ein
Für Ideen, Begriffe um ne Suchmaschine damit zu füttern oder sogar fertige Algorithmen wäre ich sehr dankbar.
In der Hoffnung, mich verständlich ausgedrückt zu haben,
madboy