Skip navigation

Éldetektálás összefoglaló feladatok

Élkereső módszerek összehasonlítása

Hajtsunk végre élkeresést a tree_binary.png képen, és a két simított változatán (tree_blur_01.png, tree_blur_02.png). Használjuk a fejezetben ismertetett módszereket! Hasonlítsuk össze, mire képesek az egyes módszerek! Foglaljuk össze a tapasztalatainkat!

Rajzfilmszerű hatás készítése

Készítsünk programot, amely egy bemeneti képet elegyít az él, vagy gradiens magnitúdó képével.

Vastagított élek megfelelő hozzáadásával rajzfilmszerű hatást érhetünk el. Ehhez szükséges képeken további feldolgozó műveleteket végrehajtani. Úgy készítsük el a programot, hogy színes képeken működjön!

Lehetséges lépések:

  • Színes kép beolvasása
  • Homogénebb kép előkészítése
    • Hajtsunk végre medián vagy morfológiai szűrést
  • Élkép előkészítése
    • Élkeresés Canny éldetektorral, megfelelő paraméterezéssel (csak a fontosabb élek maradjanak)
    • Éleket az eredeti vagy a medián-szűrt képen is kereshetünk
    • Vastagítsuk meg az éleket (morfológiai dilatációval)
  • Végeredmény előállítása
    • Az élek helyén fekete színnel helyettesítsük a képpontokat a medián-szűrt képen. Figyeljünk arra, hogy a képünk háromcsatornás, az élkép viszont csak egy!
    • Ötlet: Az élkép negáltjával hajtsunk végre logikai ÉS műveletet a színcsatornákon. Ehhez bontsuk csatornákra a képet, ezeken egyenként hajtsuk végre a logikai műveletet, majd egyesítsük az eredmény csatornákat. Az is megoldás, ha az élképet alakítjuk BGR formába, és úgy végezzük el a logikai műveletet. Ekkor elegendő egy logikai műveletet végrehajtani, és nem kell csatorna műveleteket végezni.

A műveletek paramétereit elegendő egy kiválasztott bemeneti képre optimalizálni, nem általánosan, mindenre jól működő megoldás készítse a cél!

Kétféle lehetséges eredmény a hk_flow_h.png képre:

  

Éldetektorok saját arcképen

Feladat

Készítsünk magunkról egy portré fotót, és teszteljük a különféle élkereső módszereket az arcunk kontúrjainak kiemelésére!

Saját fotó hiányában tetszőleges, például interneten található arckép is megfelelő.

Módszerek

Gradiens magnitúdó, Laplace nulla átmenettel, Canny. Igazítsunk a paraméterezésükön, hogy szebb eredményt kapjunk (Canny esetén a főbb kontúrok, belső, zajos részletek nélkül)! Az arc régió az érdekes, a háttér nem, abban maradhatnak zajos élek is.

Előzetes átméretezés

Ha nagy méretű a fotónk, akkor célszerű először átméretezni, hogy elférjen a képernyőn az OpenCV cv2.imshow() függvényével megjelenítve. Erre használhatjuk a 08_photo_resizer.py példaprogramot.

A forráskód elején kell megadni a bemeneti és kimeneti fájlneveket. A MAX_WIDTH és a MAX_HEIGHT változók adják meg, mekkora legyen az átméretezett kép maximális szélessége és magassága. Ezek alapértelmezetten 640 és 480 értéket kapnak. A program a képet az arányok megtartásával méretezi át úgy, hogy a szélesség vagy a magasság a beállított maximum legyen, a másik érték pedig a maximuma alatti.

Nem megfelelő eredmény (Canny példatár alapértékekkel):

Letisztultabb eredmény zajos élek csökkentésével:

Küszöbölés és eredményének megjelenítése

A Maszkolás témakörnél láttuk, hogyan lehetséges egy létező maszk és annak körvonala segítségével képmanipulációt és eredmény megjelenítést végezni. Akkor elfogadtuk, hogy ezek rendelkezésre állnak.

Jelenlegi tudásunkkal már képesek vagyunk ilyen területek detektálására, alakjuknak javítására, határuk meghatározására. Hajtsuk végre az alábbiakat.

  • Töltsük be a car_numberplate_rs.jpg színes képet!
  • Hajtsunk végre megfelelő típusú és méretű zajszűrést (simítást) a képen!
  • A simított képen szegmentáljunk globális küszöböléssel homogén régiókat a képen! (Rendszámtábla, kék színű matrica, vörös színű lámpa terület, stb.)
  • A küszöbölés eredményét javítsuk morfológiai szűrésekkel!
  • A strukturáló elem méretét csúszka segítségével lehessen módosítani [3-15] tartományban! Figyeljünk arra, hogy csak páratlan érték legyenek beállítva! Kezdőértéknek a korábbi futások alapján az általunk legjobbnak tartott értéket állítsuk be!
  • Határozzuk meg a javított terület körvonalát élkereséssel! (Például megfelelő paraméterezésű Canny-vel.)
  • Vetítsük rá a körvonal képet az eredeti kép szürkeárnyalatos változatára!

Vörös színű lámpa területek szegmentálása és vizualizációja

Hajtsuk végre az alábbi lépéseket a car_numberplate_rs.jpg képen!

  • Végezzen dilatáció, erózió, erózió, dilatáció lépéssorozatot a színes bemeneti képen 7x7 méretű, téglalap alakú strukturáló elemmel!
  • Hajtson végre Gauss simítást a képen 5x5 méretben, 4-es szórással!
  • Bontsa fel a képet különálló csatornákra! Állítson elő egy olyan képet, amely a zöld és a kék csatornák maximum értékeit tartalmazza!
  • Vonja ki a vörös csatorna képből az előző zöld-kék maximum eredményt! Figyeljen arra, hogy az eredmény típusa megfelelő legyen (negatív egész értékek is előfordulhatnak)!
  • Küszöbölje a különbség képet 50 értéknél! (Ez azt jelenti, hogy azokat a képpontokat tartjuk meg, ahol a vörös legalább 50 értékkel magasabb a zöld és kék maximumánál.)
  • Nyerje ki a szegmentált területek határvonalát! A körvonalat vetítse vörös színnel az eredeti kép szürkeárnyalatos változatára!