Celem zajęć jest zapoznanie się z transformacją Hough’a w zadaniu wykrywania okręgów na obrazie rastrowym.

Zadanie

  1. Wczytaj obraz testowy
    1. Przekształć go do skali odcieni szarości.
    2. 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.
  2. 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.
  3. W sprawozdaniu zaprezentować wyniki działania dla co najmniej poniższych danych testowych:
    1. \(r\in<10,20>\), \(N=5\),
    2. \(r\in<13,30>\), \(N=10\),
    3. \(r\in<30,70>\), \(N=10\),
    4. \(r\in<10,70>\), \(N=10\),

Do oddania

  • Sprawozdanie w PDF
  • Kod programu, jaki powstał w ramach instrukcji.