Potrzebuję wyodrębnić WSZYSTKIE krawędzie ścian (łącznie z podłogami, skrzyżowaniami ścian i ścianą, przecięcia drzwi) z poniższego obrazu. Jeśli używam wykrywalnego wykrywania i transformacji hough (probabilistyczny). Daje mi wiele zbędnych i niepotrzebnych linii. Szukałem, czy uda mi się udoskonalić sprytny obraz, zanim zostanie na nim przeprowadzona transformacja.Ekstrakcja rzetelnej linii z obrazu
obrazu wejściowego
Ten Poniżej znajduje się obraz obrotny podane przez sprytny algorytm detekcji
używam parametry obrotny jako 0,20 dla min i max wartości progowej. Nie mogę użyć bardzo wysokiej wartości dla maksymalnego progu, w przeciwnym razie stracę krawędzie ściany, ale gradient będzie tam niski w porównaniu z resztą obrazu.
Pomyślałem o zidentyfikowaniu klastra o wysokiej gęstości punktów w oknie i ustawieniu ich na zero, jeśli jest powyżej pewnego progu.
Poniżej przedstawiono ciekawy obraz uzyskany po tym. Możesz zobaczyć, że krawędzie ściany są zachowane.
Czy ktoś może zaproponować mi lepszy sposób radzenia sobie z tym problemem? Mam na myśli udoskonalenie sprytnego obrazu, aby móc zidentyfikować skupisko losowych punktów i uciec z nimi, ale ustawiając je na zero. Myślałem o sprawdzeniu punktów współliniowych w oknie, ale nie wiem, jak skuteczne byłoby to? Wszelkie komentarze byłyby mile widziane
Nie chcę nawet zgubić przecięcia między ścianą a podłogą. a algorytm powinien być czymś, co generyczne we wszystkich obrazach pokoi –
dlaczego nie myślisz o prostym wykrywaniu koloru ściany? uzyskaj ścianę HSV z górnego lewego lub prawego rogu, a następnie odfiltruj piksele o różnicy odcieni> pewien próg. Wtedy filtr dolnoprzepustowy (rozmycie gaussowskie) lub rozszerzenie obrazu powinien działać dobrze. – baci
nierówne na granicach = dlatego należy rozszerzyć + erodować, morfologicznie blisko. różne kolory = nie stanowi problemu, o ile wybierzesz kolor z rogu obrazu. warunki oświetleniowe = wyrównanie histogramu. To wszystko, co mam tutaj :) – baci