Quelle Bild Wie wir Endpunkte in der Nähe von einander aus der Liste der Punkte
I=imread('http://i.stack.imgur.com/qDhl7.jpg');
Einige Vorverarbeitung
nsc = bwareopen(~im2bw(I, .2),250);
i3=bwmorph(nsc,'thin');
wir dünn Bild
i4 = bwmorph(,'endpoints');
01 erhalten Liste der Endpunkte
Jetzt müssen diese Paare von Endpunkten die Tür i wählen schließen
nach der Operation Morphing wir. wie im nächsten Bild gezeigt.
So kann ich diese Bilder mit dem ersten zusammenführen. Um dieses zu erhalten
Während der Säuberung von Türen, Fenstern und WC-Elementen, die an der Wand befestigt sind, werden die Räume geöffnet, so dass ich die gewünschten verbundenen Komponenten nicht als Räume bekommen kann. Da ich nur Wände mit Raum haben möchte, keine Fenster, Tür oder andere Symbole. –
Ich habe auch versucht, bwdist und Wasserfall, um Räume Grenze zu bekommen, aber irgendwann schafft es unerwünschte Wand in der leeren Fläche. –
Ich habe gerade gesehen, dass die Türzeichnungen offene Türen zeigen, während die Zimmerfarben Räume mit geschlossenen Türen zeigen sollten, damit verbundene Bereiche nicht funktionieren. Sie könnten versuchen, Rechtecke anzubringen, aber das würde nur in rechteckigen Räumen funktionieren. Aber wenn man sich dein Eingangsbild in Matlab anschaut, scheinen die Türen und Fenster eine andere Farbe zu haben als die Zeichnungen von WCs usw. und die Wände. So könnten Sie die Türen und Fenster nach Farbe extrahieren und sie mit den Endpunkten verbinden, die sie berühren, um die Endpunktpaare zu erhalten. –