Cvičenia 2022

Riešenia z cvičení – GITLAB


7.12.2022 – Python kód

Úloha:

  • Z google street view zoberte dva obrázky, ktoré majú čiastočné prekrytie
  • Na obrázkoch nájdite features pomocou SIFT (a vykreslite)
  • Nájdite zhodu medzi features (a vizualizujte)
  • Nájdite homografiu pre pravý obrázok a aplikujte transformáciu, ktorá spojí obrázky do panorámy.

23.11.2022

GrabCut, K-means


16.11.2022

samostatná práca – kontúry, clustering, grabcut


9.11.2022 – python kód

Úloha č. 1: 

Na vhodných obrázkoch preskúmajte fungovanie Hough transformácie.

  1. Hough line transform – aký je praktický rozdiel medzi metódami HoughLines a HoughLinesP? Koľko čiar nájde transformácia na obrázku?
  2. Hough circle transform – na aké typy obrázkov je vhodné použiť túto transformáciu?

Úloha č. 2:

Na vhodných obrázkoch preskúmajte fungovanie detekcie rohov.

  1. Harris corner detector
  2. Shi-Tomasi corner detector

Ako sa líši výstup pri aplikovaní týchto dvoch metód? Shi-Tomasi je (vraj) vhodnejší pre trackovanie – porovnajte výstup oboch metód na niekoľkých snímkoch videa.


2.11.2022 – cvičenie zrušené


26.10.2022 – python kód (Fourier, transformácie)

Úloha č. 1:

  1. Stiahnite si kód použitia fourierovej transformácie na odstránenie periodického šumu
  2. Vyskúšajte s vlastnými obrázkami (odporúčam googliť periodic noise)

Úloha č. 2:

  1. Zoberte si dva obrázky – jeden portrét nejakej osoby a druhý nejaký priestor s čistou plochou (stena budovy, bilboard, obrazovka…).
  2. Manuálne nájdite 4 body – rohy danej plochy
  3. Použite perspective transformáciu na prispôsobenie portrétu na rozmer danej plochy
  4. Vytvorte masku, pomocou ktorej v originálnom obrázku vytmavíte danú plochu
  5. Spojte obrázky transformovaného portrétu a priestoru s vytmavenou plochou
  6. (voliteľne) Upravte kód tak, aby sa body evidovali pomocou kliknutia myšou.

19.10.2022 – python kód (Canny, LSD)

Úloha č. 1:

  1. Vyskúšajte Cannyho detektor na nájdenie hrán v obrázku.
  2. V opencv pridajte trackbar na interaktívnu zmenu parametrov – prahov pri detekcii hrán.
  3. Skúste nájsť ideálnu hodnotu prahov pre konkrétny obrázok

Úloha č. 2:

  1. Aplikujte Line Segment Detector algoritmus a (cez debug) pozorujte výstup
  2. Vykreslite čiary do prázdneho obrázka (čierny resp. biely a farebné čiary)
  3. Numpy výsledok poľa čiar prekonvertujte do Pandas DataFrame
  4. Do DataFrame pridajte stĺpec s hodnotou dĺžky čiary
  5. Odfiltrujte čiary, aby zostali len dlhé (dlhšie ako zadaný počet pixelov)
  6. Vykreslite len dlhé čiary

Pozn.: Posledné dve podúlohy neboli robené na cvičení, ale sú doplnené v kóde.


12.10.2022 – python kód

Úloha č. 1:

  1. Pripomeňte si, čo je Image kernel.
  2. Pripravte si obrázok, na ktorom si vyskúšate rôzne filtre.
  3. Vyskúšajte blur, gaussianBlur a medianBlur
  4. Pridajte do obrázka salt & pepper šum a aplikujte filtrovanie.
  5. Aplikujte vlastný kernel (metóda filter2d) – odporúčané sharpen, edge.
  6. Pridajte do obrázka gaussovský šum a pokúste sa odstrániť ho.

5.10.2022 – python kód

Úloha č. 1: 

  1. Na vybranom šedotónovom obrázku si vyskúšať vykreslenie histogramu.
  2. Vyrovnať histogram a vykresliť výsledný obrázok aj histogram. Vhodne pri tom využiť funkcie.
  3. Prehrať video, kde každá snímka bude mať upravený obrázok vyrovnaním histogramu.

Úloha č. 2:

  1. Vybrať si obrázok nejakého textu (prípadne iný vhodný obrázok).
  2. Vytvoriť šedotónový (cvtColor) a následne binárny obrázok (thresholding)
  3. Aplikovať vybrané metódy morfológie

28.9.2022 – python kód

Ukladanie obrázkov do súboru, vykreslenie histogramu, binárna maska.


21.9.2022 – python kód

Načítanie obrázka, zobrazenie cez OpenCV a Matplotlib, úprava poľa/obrázka.

Prečo používa OpenCV BGR formát


Dokumentácia: