Instrukcja poświęcona jest poznaniu podstawowych zagadnień dotyczących próbkowania i zmiany rozmiaru obrazu.

Pliki do zajęć:

Zadania

  1. Do zaimplementowania dla obrazów kolorowych:

    • Algorytmy skalowania obrazu (0,2 pkt):
      • Metoda najbliższego sąsiada,
      • Metoda interpolacji dwuliniowej.
    • Algorytmy zmniejszania obrazu przy użyciu (0,2 pkt):
      • średniej,
      • średniej ważonej (wagi ustalić samemu)
      • mediany

    Wszystkie funkcje powinny przyjmować dwa parametry:

    • obraz wejściowy jako zmienną tablicową NumPy,
    • współczynnik skalowania obrazu albo w %, albo jako mnożnik. Jeżeli obudowujecie te funkcje, w jakąś zewnętrzną funkcją to dajcie możliwość wywołania jej w ten sposób.
  2. Zbadać stateczność działania algorytmów służących do zmiany rozmiaru obrazów na dołączonych do zadania materiałach (można rozszerzyć badanie o własne przykłady). Pamiętajcie, że macie do dyspozycji różnego rozmiaru zdjęcia. Duże służą przede wszystkim do pomniejszania, małe do powiększania. Wyniki pokazywać na przybliżeniach nie na całych dużych obrazach. Fragmenty po pomniejszeniu powinny zawierać jeszcze jakieś detale, czyli rozpatrywany fragment powinien być na tyle duży, żeby po operacji nie było do 25x25 px (w zależności od obrazu może być to nawet dużo więcej). Przybliżenia możemy realizować na 2 sposoby:

    1. Przeliczyć cały obraz i ograniczyć obszar wyświetlania (funkcje xlim oraz ylim)
    2. Wybrać fragment(y) obrazu poprzez wyodrębnienie ich jak na pierwszych zajęciach poprzez użycie [] i dla nich wykonać modyfikacje. Następnie je wyświetlić Współrzędne z oryginalnego obrazu przeliczmy w stosunku dla obrazu oryginalnego: [ROI_OG] -> dla obrazu po modyfikacjach [ROI_OG * skala].

    Badania dokonać na dwóch dużych zdjęciach i przynajmniej 3 fragmentach na każdym z nich. Do powiększania proszę przetestować 4 małe obrazy. Do przebadania na nich są poniższe zadania:

    • Zbadać wizualną skuteczność działania (przybliżenie zdjęcia) w zależności od stopnia zmiany rozmiaru (sprawdzić dla więcej niż dwóch rozmiarów przekształceń np. powiększanie 300%,500% itd. Zmniejszanie do 10%, 5% itd.). Sprawdzić i pokazać jak poszczególne operacje zmieszania wpływają na pojawianie się i znikanie obiektów na zdjęciu podczas dużego zmniejszania dużych obrazów (np. 5%). (0,4 pkt)
    • Zbadać wpływ działania algorytmów na wykrywanie krawędzi w obrazie (również na fragmentach). Sprawdzić, czy są parametry zmniejszania/powiększania obrazu, dla których niektóre krawędzie przestaną być wykrywane w sposób prawidłowy. Można wykorzystać do tego funkcję cv2.Canny. (0,2 pkt)

Do oddania

  • Kod źródłowy (jeden plik .py)
  • sprawozdanie z obserwacjami i wynikami (format PDF) - upewnić się, że załączane obrazy są czytelne i nie są zbyt małe.