2016-05-19 2 views
0

Quelle Bild enter image description hereWie 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

erhalten paaren enter image description here

i4 = bwmorph(,'endpoints'); 
01 erhalten Liste der Endpunkte

enter image description here

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. enter image description here

So kann ich diese Bilder mit dem ersten zusammenführen. Um dieses zu erhalten enter image description here

Antwort

-1

Das Problem, das ich mit Ihrer Annäherung sehe, ist diese Wand, die die Küche und das Wohnzimmer trennt. Es hat einen Endpunkt, aber keine Tür, die daran befestigt ist, im Gegensatz zu den anderen Lücken in den Wänden, wo Türen oder Fenster an den Endpunkten angebracht sind, und diese Fälle werden schwer zu trennen sein.

Also, was genau versuchst du zu tun? Wenn Sie Ihre Eingabe- und Zielbilder vergleichen, werden Sie vermutlich die einzelnen Räume farblich gestalten wollen? Dann würde ich vorschlagen, bconncomp zu verwenden, um die verbundenen Regionen in dem Bild zu erhalten, die Wandregion zu löschen und durch die Regionen zu iterieren, um sie zu färben.

+0

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. –

+0

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. –

+0

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. –

Verwandte Themen