Celem zajęć jest zapoznanie z modelami szumu w obrazach cyfrowych i wybranymi metodami filtracji szumu.

Zadania

  1. Zaimplementować dowolne 3 spośród poniższych funkcji generowania szumu - 0,3 pkt dodatkowe 0,1 pkt za każdą dodatkową metodę (o ile zostanie ona przetestowana):

    1. Gaussa
    2. Erlanga
    3. Rayleigha
    4. Impulsowym (s&p)
    5. Jednorodnym
    6. Wykładniczym
  2. Zaimplementować 3 spośród poniższych funkcji filtracji odszumiającej zgodnie z modelami opisanymi powyżej - 0,3 pkt dodatkowe 0,1 pkt za każdą dodatkową metodę (o ile zostanie ona przetestowana):

    1. Uśredniania arytmetycznego
    2. Uśredniania geometrycznego
    3. Uśredniania harmonicznego
    4. Uśredniania kontrharmonicznego
    5. Medianowym
    6. Punktu środkowego
  3. Zaimplementować poniższe funkcje oceny jakości 0,2 pkt:

    1. PNSR
    2. NMSE
    3. IF
  4. Dla każdej zaimplementowanej pary: generator szumu - filtr, wykonać następujący eksperyment badawczy 0,2 pkt:

    1. Wczytać obraz testowy (jednokanałowy, rozdzielczość minimum 256x256 px)

    2. Wygenerować odpowiednie wartości szumu o rozmiarze obrazu (nie dodawać ich od razu)

    3. W pętli dla współczynnika alfa (w zależności od wartości obrazu <0-1> lub <0-255>) dodawać szum w celu wygenerowania wykresów:

      1. Jako zmienną testową dodajemy do naszego obrazu szum w stosunki obaz_zaszumiony= obraz + alfa*szum (pamiętać, żeby zrobić clipping zmienna.clip()).
      2. Dokonujemy filtracji odszumiającej.
      3. Wyliczamy współczynniki jakości dla naszego obrazu zaszumionego i odszumionego.
    4. Uzyskane wyniki umieszczamy na wykresie:

      Przykład wykresu

  5. Przedstawić swoje obserwacje i wnioski, na podstawie wygenerowanych wykresów.

Do oddania

  • kod źródłowy (jeden plik .py)
  • sprawozdanie z obserwacjami i wynikami (format PDF)