Gemeinsamen Flüssigkeitsstand ermitteln
Sorry, dass ich jetzt erst antworte, aber übers Wochenende war meine Zeit exterm knapp bemessen.
Dennoch habe ich einen funktionierenden Weg gefunden, wie ich das Problem lösen kann.
Falls mal jemand das selbe Problem haben sollte, hier eine kurze Zusammenfassung des Lösungswegs:[list]
[*]Das zu untersuchende Bild wird in ein 2D-Array umgewandelt, damit man es durcharbeiten kann.<>
[*]Jetzt nimmt man von jeder Zeile den Farbmittelwert, damit man dadurch genau erkennen kann, wo der Flüssigkeitsminiskus an der Oberfläche endet. Der so ermittelte Wert ergibt schonmal die obere Grenze des gesuchten Bildausschnittes.<>
[*]An der Unterkante ist es ähnlich. Durch die größere Glasdicke am Boden wird mehr Licht zerstreut, wodurch der Glasboden dunkler erscheint. Dies kann man sich zu Nutze machen, da man ja zeilenweise die Farbmittelwerte absucht. Daher ist der Punkt, an dem die Helligkeit sinkt (zu sehen ist die Dunkelheit steigt) die Grenze zum Glasboden. Dies ergibt den unteren Rand.<>
[*]Um die beiden Glasseiten zu detektieren, geht man effektiv wieder vor wie bisher, nur, dass man sich jetzt lediglich eine Zeile des Arrays vornimmt und sich da den Farbverlauf anzeigen lässt. Der Flüssigkeitsbereich ist homogen ausgeleuchtet und daher gut im Graphen zu erkennen. Man muss also nur eine Möglichkeit finden, wie man die beiden Anstiege im Farbwert detektiert, die durch die dunkleren Glaswände hervorgerufen werden.<>
[*]Um dies zu erreichen wird ein Schwellwert gesetzt und mit diesem der Farbwertverlauf umgerechnet. So kann man nun nach den beiden Minima suchen und hat die beiden Ränder.<>
[st]Trotzdem danke an alle, die sich das hier durchgelesen und mehr oder weniger Gedanken gemacht haben.
|