Celem zajęć jest zapoznanie się z transformacją Hough’a w zadaniu wykrywania okręgów na obrazie rastrowym.
Zadanie
- Wczytaj obraz testowy
- Przekształć go do skali odcieni szarości.
- Zastosuj odpowiedni filtr splotowy z wcześniejszych zajęć w celu wykrycia krawędzi. Jeżeli nie macie własnego filtru, proszę wykorzystać implementację z OpenCV.
- Zaimplementuj funkcję wyliczającą transformatę Hough’a wykorzystującą filtr splotowy.
- Funkcja powinna przyjmować obraz wejściowy, przygotowany w poprzednim kroku oraz zakres promieni do przeszukania.
- Funkcja powinna przeszukiwać obraz we wskazanym zakresie promieni i zwracać listę \(N\) potencjalnych okręgów (środek + promień).
- Jeżeli okręgów jest więcej niż \(N\), proszę zwrócić \(N\) najbardziej prawdopodobnych (z największymi wartościami akumulatora).
- Jeżeli okręgów jest mniej niż \(N\) to proszę zwrócić tylko te znalezione.
- Jeżeli w obrębie kilku współrzędnych, macie (+/- kilka pikseli) więcej niż jeden potencjalny okręg, to zostawcie w liście tylko ten najbardziej prawdopodobny, chyba, że różnica pomiędzy promieniami będzie znaczna (\(>4-5\) jednostek)
- Powinna również zaznaczać je na obrazie.
- W sprawozdaniu zaprezentować wyniki działania dla co najmniej poniższych danych testowych:
- \(r\in<10,20>\), \(N=5\),
- \(r\in<13,30>\), \(N=10\),
- \(r\in<30,70>\), \(N=10\),
- \(r\in<10,70>\), \(N=10\),
Do oddania
- Sprawozdanie w
PDF
- Kod programu, jaki powstał w ramach instrukcji.