Skip navigation

Gradiens magnitúdó akkumulálása a fertőzött határok meghatározására

Megközelítés

A vizsgálat során arra voltunk kíváncsiak, hogy ha esetleg külsőleg szabad szemmel nem is látszik különbség, a nem látható fény tartományában észrevehető-e valamiféle elváltozás.

Tekintettel arra, hogy nem tudjuk, hogy ez az elváltozás hogyan néz ki és melyik csatornán jelentkezik, azt a feltételezést használtuk, hogy az elváltozásnál élek jelennek meg. Így az élek mentén nagy lesz a gradiens magnitúdó értéke, amely csatornánként kinyerhető és feldolgozható. A gradiens magnitúdó képeket minden csatornából előállítottam, és akkumuláltam azokat egyetlen 2D képre. Habár természetesen máshol is megjelennek élek, de az elváltozásból adódó élek csak néhány csatornán lesznek jelen.

A programot Python nyelven a Spectral és az OpenCV függvénykönyvtárakkal készítettem.

Tapasztalat

A feltételezés beigazolódott, valóban megjelentek az elváltozás menti élek, értéküket azonban nemigen sikerült elkülöníteni a többi éltől és annak meghatározása is hátravan még, hogy melyik csatornán (vagyis milyen hullámhossz tartományban) jelentek meg az elváltozások.

Az a megközelítés, hogy a hiperspektrális képeket valamilyen globális információ (például akkumulált gradiens magnitúdó) alapján szegmentáljuk csak részmegoldást hozott az előtér és háttér elkülönítésében. Az egyes csatornákat (hullámhossz-tartományokat) külön-külön is megvizsgáltuk. Az alsó csatornákon meglehetősen nagy a zaj, amely megnehezíti a szegmentálást. A többi csatornán a kép már nem zajos. Ezt követően egyenletes felosztással vizsgáltuk a csatorna-tartományokat és korábban kipróbált szegmentálási módszereket ezekre alkalmaztuk. Az alsó (zajos) csatornákat kihagyva a feldolgozásból az eredmény markánsan javult. A kontúrok még nem pontosak, de a további vizsgálatokhoz megfelelően szegmentált régiók állnak rendelkezésre.

Programkód és futtatás

A program futtatásához Python 3.x és az következő python csomagok szükségesek: opencv_python, numpy, matplotlib, spectral, sys

A program futtatása (Linux és Windows rendszeren hasonlóan történik):

python3 accumulated_magnitude.py input.hdr output.png

Az input.hdr helyére azt a hiperspektrális fájlt kell megadni, amelyet szeretnénk feldolgozni. Az eredmény az output.png vagy a helyette megadott PNG képbe lesz elmentve.