Chcę być w stanie znaleźć punkty na obrazach, które są środkiem gradientu radialnego, jak ten pokazany na lewym zdjęciu poniżej. Jakieś pomysły na to, jak mogę zastosować transformację Hougha lub inną metodę wizji komputerowej?
Dzięki
przykładowy obraz wyszukiwania:
image-processing
computer-vision
gradient
waspinator
źródło
źródło
Odpowiedzi:
Pracowałem w opencv i próbowałem znaleźć pik gradientu wygenerowany przez transformację odległości. Uświadomiłem sobie, że zastosowanie operacji morfologicznych (erozja / dylatacja) w obrazach w skali szarości było w tym przypadku bardzo przydatne. Jeśli erodujesz, rozszerzasz obraz w skali szarości, każdy piksel przyjmie wartość dolnego / najwyższego sąsiada. Można zatem znaleźć szczyty intensywności w gradientach, odejmując obraz w skali szarości od tego samego obrazu rozszerzonego / zerodowanego. Oto mój wynik:
I sposób, aby to zrobić w OpenCV / Cpp:
źródło
Oto co mam do tej pory. Sposób, w jaki zapełniam przestrzeń Hougha, jest daleki od optymalnego. Jestem pewien, że mogę zrobić wektoryzację, aby przyspieszyć. Używam Matlab R2011a. Oryginalny obraz
Sugestie są mile widziane, dziękuję.
Zmodyfikowałem funkcję rysowania, którą znalazłem na centralnym programie Matlab, aby zwiększyć wartość o piksel o wartość zamiast ustawiać piksel na wartość
źródło
Przeprowadź histogram zorientowanych gradientów nad łatami obrazu - pik na każdym z tych histogramów da ci dominujący kierunek tej łatki (podobnie jak pokazywane strzałki).
Znajdź, gdzie przecinają się wszystkie strzałki - jeśli ten punkt znajduje się w obiekcie, może to być środek gradientu promieniowego.
źródło