Ich verwendete OpenCV-Implementierung von watershed Algorithmus, um Ihr Problem zu lösen. Sie können herausfinden, wie man es benutzt, wenn Sie this great tutorial lesen, also werde ich das nicht in vielen Details erklären.
Ich wählte vier Punkte (Marker). Einer befindet sich in der Region, die Sie extrahieren möchten, einer ist draußen und die anderen beiden befinden sich im unteren/oberen Teil des Interieurs, der Sie nicht interessiert. Ich habe dann ein leeres Integer-Array (das sogenannte Marker-Image) erstellt und mit Nullen aufgefüllt. Dann habe ich Pixeln an Markerpositionen eindeutige Werte zugewiesen.
Das Bild unten zeigt die Markerpositionen und Markerwerte, auf dem Originalbild gezeichnet:
ich auch mehr Marker im gleichen Bereich wählen könnte (zum Beispiel mehrere Marker, die zu dem Bereich gehören Sie möchten extrahieren), aber in diesem Fall sollten alle dieselben Werte haben (in diesem Fall 255).
Dann habe ich Wasserscheide verwendet. Die erste Eingabe ist das Bild, das Sie angegeben haben, und die zweite Eingabe ist das Markerbild (überall Null außer an den Markerpositionen). Der Algorithmus speichert das Ergebnis im Markerbild; die Region, die Sie markiert mit dem Wert der Region Marker (in diesem Fall 255) interessiert:
Ich habe alle Pixel, die nicht die 255-Wert auf Null hatte. Ich erweiterte das erhaltene Bild dreimal mit 3x3 Kernel. Dann habe ich die dilatative Bild als Maske für das Originalbild (i gesetzt, alle Pixel außerhalb der Maske auf Null), und dies ist das Ergebnis bekam ich:
Sie werden wahrscheinlich eine Art von Verfahren müssen, dass findet Marker automatisch. Die Schwierigkeit dieser Aufgabe hängt stark von der Menge der Eingabebilder ab. In einigen Fällen kann die Methode sehr einfach und einfach sein (wie in dem oben verlinkten Tutorial), aber manchmal kann dies eine harte Nuss sein, die man knacken kann. Aber ich kann nichts empfehlen, weil ich nicht weiß, wie deine Bilder im Allgemeinen aussehen (du hast nur eine zur Verfügung gestellt). :)
Scheint sehr vielversprechend. Alle Bilder sind sehr ähnlich, so dass ich eine Maske aus dem Mittelwert und/oder Standard-Entwicklung des gesamten Datensatzes machen konnte. Ich werde versuchen, es heute oder morgen zu machen, und ich werde dich wissen lassen, wie es gelaufen ist. Gute Arbeit, danke! – TasosGlrs