„Számítógépes látórendszerek - Ellenőrző kérdések: Javítás képtartományban” változatai közötti eltérés

Nagy Marcell (vitalap | szerkesztései)
a autoedit v2: fájlhivatkozások egységesítése, az új közvetlenül az adott fájlra mutat
 
(41 közbenső módosítás, amit 4 másik szerkesztő végzett, nincs mutatva)
10. sor: 10. sor:
A digitális fényképészet gyakran használ hisztogramot. A jól felszerelt digitális fényképezőgépek valós időben mutatnak hisztogramokat, hogy így segítsék a képi egyensúly megtalálását. Ez pontosabb képszerkesztést tesz lehetővé, mint ami a kamerakép alapján tehetséges lehetne. Felismerhetők és javíthatók például a világítás hibái, ha a kép túl sötét vagy túl világos lenne. A kép későbbi feldolgozásában sokat számítanak a rajta levő kontrasztok és a fényességek, ezért érdemes a hisztogramokat figyelni.
A digitális fényképészet gyakran használ hisztogramot. A jól felszerelt digitális fényképezőgépek valós időben mutatnak hisztogramokat, hogy így segítsék a képi egyensúly megtalálását. Ez pontosabb képszerkesztést tesz lehetővé, mint ami a kamerakép alapján tehetséges lehetne. Felismerhetők és javíthatók például a világítás hibái, ha a kép túl sötét vagy túl világos lenne. A kép későbbi feldolgozásában sokat számítanak a rajta levő kontrasztok és a fényességek, ezért érdemes a hisztogramokat figyelni.


A hisztogramok egy klasszikus felhasználása a színegyensúly beállítása (equalizing). A hisztogramot és a megfelelő színeket egy alkalmas függvénnyel transzformálják. Jobban kiegyensúlyozza a színeket, mint a kontrasztok erősítése. <br/>
A hisztogramok egy klasszikus felhasználása a színegyensúly beállítása ('''equalizing'''), lásd az ábrát. A hisztogramot és a megfelelő színeket egy alkalmas függvénnyel transzformálják. Jobban kiegyensúlyozza a színeket, mint a kontrasztok erősítése. Az ábrán bal alsó sarokban látható néhány szín a korrekció paramétereinek beállításához használható referencia, az erről készült fényképet úgy kell korrigálni, hogy a képen az eredeti értékeket kapjuk vissza (persze ilyen komolyságnál már arra is vigyázni kell hogy a minta megfakul idővel stb.).
 
[http://hu.wikipedia.org/wiki/Hisztogram Forrás]
[http://hu.wikipedia.org/wiki/Hisztogram Forrás]
[[File:Számítógépes látórendszerek Színkorrekció.png]]


== Milyen fontosabb zajok jellemezhetik a képeket? <br/>Sorolja fel a lehetséges eljárásokat ezek eltüntetésére? <br/>Ismertesse a konvolúciós ablakkal történő képjavítás módszerét. ==
== Milyen fontosabb zajok jellemezhetik a képeket? <br/>Sorolja fel a lehetséges eljárásokat ezek eltüntetésére? <br/>Ismertesse a konvolúciós ablakkal történő képjavítás módszerét. ==
29. sor: 32. sor:
*Élesítő szűrők
*Élesítő szűrők
*Rank szűrők
*Rank szűrők
*Median
**Median


===Konvolúciós ablak===
===Konvolúciós ablak===
37. sor: 40. sor:
A lineáris kombinációval történő leírást konvolúciós kernelnek nevezzük.
A lineáris kombinációval történő leírást konvolúciós kernelnek nevezzük.


Az input minden pixelére egy maszkot helyezünk úgy, hogy annak origója az adott pixelre essen.
A képjavítás menete:<br/>
Az input kép maszk alatti pixeleit megszorozzuk a maszkban szereplő súlyokkal.
#Az input minden pixelére egy ablakot/kernelt helyezünk úgy, hogy annak origója az adott pixelre essen.<br/>
Az eredmény: az input helyzetének megfelelő pixel értéke a súlyozott értékek összege(esetleg skálázva).
#Az input kép kernelében lévő pixeleit megszorozzuk a kernelben szereplő súlyokkal.<br/>
#Az eredmény: az input helyzetének megfelelő pixel értéke a súlyozott értékek összege(esetleg skálázva).


== Hogyan tudunk simító szűrőt készíteni? <br/>Hogyan hat a képre a konvolúciós kernel mérete és a kernelen belüli értékek elrendezése? <br/>Milyen előnyei vannak az alábbi kernelnek: [ 1 2 1 ; 2 4 2 ; 1 2 1 ]? <br/>Ismertesse a Gauss szűrő lényegét. ==
== Hogyan tudunk simító szűrőt készíteni? <br/>Hogyan hat a képre a konvolúciós kernel mérete és a kernelen belüli értékek elrendezése? <br/>Milyen előnyei vannak az alábbi kernelnek: [ 1 2 1 ; 2 4 2 ; 1 2 1 ]? <br/>Ismertesse a Gauss szűrő lényegét. ==
45. sor: 49. sor:
===Simító szűrő===
===Simító szűrő===


Vesszük a sima átlagoló szűrő kernelét, de különböző súlyozásokat használunk.
Simítás lényege, hogy a képpontok közelebb kerülnek környezetük átlagához, azaz a kép „simább” lesz,
Vesszük a sima átlagoló szűrő kernelét, de különböző súlyozásokat használunk. A kernel elemei pozitívak.  


===Konvolúciós kernel mérete===
===Konvolúciós kernel mérete===
Minél nagyobb a kernel, az apróbb dolgok annál inkább eltűnnek, elmosódnak.


===[ 1 2 1 ; 2 4 2 ; 1 2 1 ] kernel előnyei===
===[ 1 2 1 ; 2 4 2 ; 1 2 1 ] kernel előnyei===


FPGA-ban nagyon könnyű megvalósítani.
FPGA-ban nagyon könnyű megvalósítani, mivel 2-vel és 4-gyel kell szorozni, 16-tal kell osztani a végén. Ezek a műveletek a 2-hatványok miatt eltolások, FPGA-ban csupán huzalozással megoldhatók.


===Gauss szűrő===
===Gauss szűrő===
62. sor: 69. sor:
===Élesítő szűrők===
===Élesítő szűrők===


Kiemeli a környezeti átlagtól való eltérést (azaz az éleket). A kernelben vannak negatív súlyok. Minél nagyobb a középső érték annál inkább hasonlít az eredeti képre az új. Hátrány: a zajokat is kiemeli.
Kiemeli a környezeti átlagtól való eltérést (azaz az éleket). A kernelben vannak pozitív és negatív súlyok is. Minél nagyobb a középső érték annál inkább hasonlít az eredeti képre az új. Hátrány: a zajokat is kiemeli.


===Élesítő vs élkereső szűrő===
===Élesítő vs élkereső szűrő===
76. sor: 83. sor:
===Rank-szűrők===
===Rank-szűrők===


A korábbi szűrési eljárások a a zajhatásokat csak szétosztották(szétkenték), ezzel szemben a Rank-szűrők szinte teljesen képesek megszabadítani a képet ezektől a pontszerű hibáktól. <br/>
A simító szűrők a zajhatásokat csak szétosztják (szétkenik, kiátlagolják), ezzel szemben a Rank-szűrők szinte teljesen képesek megszabadítani a képet ezektől a pontszerű hibáktól.
Működési elv: Vesszük minden pixel meghatározott környezetét. A pixel és a környezet intenzitásértékeit nagyság szerinti növekvő sorrendbe állítjuk. E sorból vegyük az n-edik elemet; ez lesz a pixel új világosságértéke. Ha n=1, akkor mindig a minimális értéket választottuk, ha n=k, akkor mindig a k-adikat. Median szűrésről akkor beszélünk, ha n=k/2, vagyis a sorba rendezett világosságértékek közül éppen a középsőt választjuk. A vizsgált pixelkörnyezet mérete, alakja sokféleképpen választható.
 
Működési elv: Vesszük minden pixel meghatározott környezetét. A pixel és a környezet intenzitásértékeit nagyság szerinti növekvő sorrendbe állítjuk. E sorból vegyük az n-edik elemet; ez lesz a pixel új világosságértéke.
 
Ha n=1, akkor mindig a minimális értéket választottuk, ha n=k, akkor mindig a k-adikat. Median szűrésről akkor beszélünk, ha n=k/2, vagyis a sorba rendezett világosságértékek közül éppen a középsőt választjuk. A vizsgált pixelkörnyezet mérete, alakja sokféleképpen választható.
   
   
*k-adik szomszéd
*k-adik szomszéd
84. sor: 94. sor:
*Median szűrő
*Median szűrő


===Medain szűrő elényei===
===Median szűrő előnyei===


Előnye, hogy a finom dolgok finomak maradnak, viszont a tüskék eltűnnek. Vagy másképpen ez a szűrés a kiugró zajcsúcsokat teljesen eltünteti és nem csak elkeni, mint a lineáris szűrés.  
Előnye, hogy a finom dolgok finomak maradnak, viszont a tüskék eltűnnek. Vagy másképpen: ez a szűrés a kiugró zajcsúcsokat teljesen eltünteti és nem csak elkeni, mint a lineáris szűrés.


===Kernelméret, kernel többszörös végrehajtása===
===Kernelméret, kernel többszörös végrehajtása===


Általában 3x3,5x5 -ös kernelméreteket használnak, de van 7x7-es is, de ez valósidőben brutális.  
Általában 3x3, 5x5-ös kernelméreteket használnak. Van 7x7-es is, de ez valós időben nem mindig használható.  
A medain-t például sokszor egymás után végrehajtják, így teljesen eltűnnek a zajcsúcsok.
A medián szűrőt például sokszor egymás után végrehajtják, így teljesen eltűnnek a zajcsúcsok.
 
=== Egyéb ===
==== Olimpiai szűrő ====
Az olimpiai szűrő, a medián szűrőhöz hasonlóan, a kiugró intenzitás értékeket zajforrásból származónak tekinti. Egyes sportok olimpiai pontozási módszerét követi. Sorba rendezi a kernel alatti elemeket, majd a középsőtől legjobban elütőket eldobja. Paraméterként megadható, hogy a legnagyobb és legkisebb elemekből mennyit hagy figyelmen kívül.
[http://tarsadalominformatika.elte.hu/tananyagok/opensourceelm/lecke15_lap1.html#hiv3 Forrás]
==== Kalap-szűrő ====
Ha kisebb a "szennyeződés" mint a belső kör fele, akkor azt eltünteti a szűrő.


== Ismertesse az élkeresés alapvető módszereit: <br/>DoG, első és második deriváltak, Canny, Frei & Chen (a konkrét kernelek nem szükségesek). <br/>Hogyan lehet az élkeresés eredményén javítani ha több-féle eljárásra is lehetőségünk nyílik (pl. Sobel)? <br/>Hogyan hat a kernelméret az élkeresésre? ==
== Ismertesse az élkeresés alapvető módszereit: <br/>DoG, első és második deriváltak, Canny, Frei & Chen (a konkrét kernelek nem szükségesek). <br/>Hogyan lehet az élkeresés eredményén javítani ha több-féle eljárásra is lehetőségünk nyílik (pl. Sobel)? <br/>Hogyan hat a kernelméret az élkeresésre? ==
===Élkeresés alapvető módszerei===
==== DoG(Gaussok különbsége) ====
Az eredeti képen két különböző Gauss szűrést végzünk.(Az egyik nagyobb mértékben simít mint a másik.)<br/> A végső képet úgy kapjuk meg, hogy az eredeti képben minden pixelt a két Gauss szűrt kép különbségével(pixelenként természetesen)helyettesítünk. <br/>A nullátmenetek (ahol a pozitív értékekből negatív lesz és fordítva) fontosak a számunkra, ezek gyakorlatilag az élek.
==== Deriváltak ====
'''Első derivált''':
*[ X X X ; -1 0 1  ; X X X ]
*[ -1 X X ; X 0 X ; X X 1 ]
'''Második derivált''':
*[ X X X ; -1 2 -1 ; X X X ]
*[ -1 X X ; X 2 X ; X X -1 ]<br/>
X: don't care
==== Canny ====
Elsősorban lépcsős élekre, a kép Gauss zajjal terhelt.
Lépések
# Gauss szűrés
# Derivatív szűrés két/négy irányban
# Nem maximumok törlése (gradiens irányban)
# Küszöbözés: erős élek, gyenge élek
==== Frei & Chen ====
Kevésbé érzékeny a zajokra mint más élkereső eljárások. Összesen 9 konvolúciós ablakot/kernelt használ(3x3 méret), ezek a legfontosabb irányú kernelek.
===Többféle élkeresési eljárás===
==== Sobel ====
===Kernelméret és az élkeresés===
Minél nagyobb a kernelméret annál inkább eltűnnek az apró dolgok.
== Milyen jellegű geometriai torzítások terhelhetik a képet? <br/>Ismertesse a perspektív illetve a radiális és tangenciális torzítás hatását és kezelésének módját. <br/>Hogyan tudjuk visszaállítani az eredeti arányokat egy ferde kamerával követett síkbeli képen? ==
== Milyen jellegű geometriai torzítások terhelhetik a képet? <br/>Ismertesse a perspektív illetve a radiális és tangenciális torzítás hatását és kezelésének módját. <br/>Hogyan tudjuk visszaállítani az eredeti arányokat egy ferde kamerával követett síkbeli képen? ==
=== Perspektív ===
Gyakorlatban: Ha egy épületet az utcán állva fotózunk, gyakran azt tapasztaljuk, hogy a képen a függőleges vonalak összefutnak. Ez a perspektivikus torzítás, ami általában hibának számít. Még erőteljesebb a hatás, ha nagy látószögű objektívvel, viszonylag közelről fényképezünk. Bár az utómunka során ezt a hibát elvben korrigálni lehet, de az újabb torzulásokkal járhat. Ezért a legjobb a felvételkor elvégezni a korrekciót.
[http://www.fotovilag.hu/cikk/291/ Forrás]
=== Radiális ===
Ezt a fajta torzítást az okozza, hogy az eszközökben az olcsóbb kivitelezhetőség miatt ideális parabolikus lencsék helyett gömbszerű lencséket
alkalmaznak, valamint a képalkotó általában nem a lencse fókuszpontjában helyezkedik el. Ez a torzítás okozza az ún. hordó, vagy halszem effektust. A lencse közepétől távolabb eső fénysugarak jobban elhajlanak, mint a lencse közepén. Ez olcsó webkamerák esetén jól megfigyelhető, drága, csúcskategóriás eszközöknél igyekeznek a matematikailag ideálist jobban megközelítő lencsét előállítani, illetve a képalkotót a fókuszpontba helyezni. A radiális torzítás a kép közepén 0, és a kép szélei felé haladva növekszik.
[https://www.google.hu/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CCoQFjAC&url=http%3A%2F%2Fwww.tankonyvtar.hu%2Fen%2Ftartalom%2Ftamop422b%2F2010-0020_0053_nik_pub_kemenes_palyamunka_20029_0184%2F0053_nik_pub_kemenes_palyamunka_20029_0184.pdf&ei=ZKt2Va-UN8XtUqrtgOAD&usg=AFQjCNHd_3KXFdRfK_xJZ236Hv4acFPVzQ&sig2=X4LTc80WY6a_gGosVqaLUA&cad=rja Forrás]
=== Tangenciális ===
Ez a fajta torzítás a gyártás hibáiból adódik, a lencse nem párhuzamos a képalkotóval. Ez a torzítás két paraméterrel ( <math>p_{1}, p_{2})</math> adható meg.
[https://www.google.hu/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CCoQFjAC&url=http%3A%2F%2Fwww.tankonyvtar.hu%2Fen%2Ftartalom%2Ftamop422b%2F2010-0020_0053_nik_pub_kemenes_palyamunka_20029_0184%2F0053_nik_pub_kemenes_palyamunka_20029_0184.pdf&ei=ZKt2Va-UN8XtUqrtgOAD&usg=AFQjCNHd_3KXFdRfK_xJZ236Hv4acFPVzQ&sig2=X4LTc80WY6a_gGosVqaLUA&cad=rja Forrás]
== Milyen interpolációs technikákat ismer? <br/>Ismertesse a legközelebbi szomszéd, a bilineáris és a biköbös interpolációs technikák alapelvét (képletek nem szükségesek). ==
== Milyen interpolációs technikákat ismer? <br/>Ismertesse a legközelebbi szomszéd, a bilineáris és a biköbös interpolációs technikák alapelvét (képletek nem szükségesek). ==
Ebben az értelemben az adott mennyiségű képpontból nagyobb felbontású, több képpontot tartalmazó képet állítunk elő. Motiválhatja például a [http://en.wikipedia.org/wiki/Image_scaling kép nagyítás]ának igénye.
Ebben az értelemben az adott mennyiségű képpontból nagyobb (vagy kisebb) felbontású, több (vagy kevesebb) képpontot tartalmazó képet állítunk elő. Motiválhatja például a [http://en.wikipedia.org/wiki/Image_scaling kép nagyítás]ának igénye. Nagyításnál egyértelműen hiányzó információt pótolunk, kicsinyítéskor viszont a pixelek elhelyezkedésének változása miatt szükséges interpolálni (azonos képtartalmat kevesebb, jellemzően más pozícióba kerülő adatponttal ábrázolunk).


* '''[http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation Legközelebbi szomszéd]''': A nagyított kép egyes pixeleinek értékeit az alapján határozzuk meg, hogy melyik eredeti pixelhez vannak legközelebb, azzal tesszük őket egyenlővé. ''Pixeles'' képet eredményez.
* '''[http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation Legközelebbi szomszéd]''': A nagyított kép egyes pixeleinek értékeit az alapján határozzuk meg, hogy melyik eredeti pixelhez vannak legközelebb, azzal tesszük őket egyenlővé. ''Pixeles'' képet eredményez.
* '''[http://en.wikipedia.org/wiki/Bilinear_interpolation Bilineáris]''': Az új pixelek értékét mindkét irányban lineárisan interpoláljuk (név innen), azaz egyenest illesztünk a két közeli eredeti pixel érték közé, és a keresett érték az egyenes pixelnek megfelelő helyén felvett értéke lesz. Az egyenesillesztést tehát a legközelebbi 4 pixel alapján hajtjuk végre. Furcsa ''artifact''-okat tud okozni, viszont nagyon gyors.
* '''[http://en.wikipedia.org/wiki/Bilinear_interpolation Bilineáris]''': Az új pixelek értékét mindkét irányban lineárisan interpoláljuk (név innen), azaz egyenest illesztünk a két közeli eredeti pixel érték közé, és a keresett érték az egyenes pixelnek megfelelő helyén felvett értéke lesz. Az egyenesillesztést tehát a legközelebbi 4 pixel alapján hajtjuk végre. Furcsa ''artifact''-okat tud okozni, viszont nagyon gyors.
* '''[http://en.wikipedia.org/wiki/Bicubic_interpolation Biköbös (bicubic)]''': Lassabb a bilineárisnál, de szebb eredményt is ad. A legközelebbi 16 pixel alapján számol. Figyelembe veszi a szomszédos pixel értékeket, az x-y irányú deriváltakat és kereszt deriváltakat. [TODO?]
* '''[http://en.wikipedia.org/wiki/Bicubic_interpolation Biköbös (bicubic)]''': Lassabb a bilineárisnál, de szebb eredményt is ad. A legközelebbi 16 pixel alapján számol. Figyelembe veszi a szomszédos pixel értékeket, az x-y irányú deriváltakat és kereszt deriváltakat, az ezekből következő meredekségi kényszerekre felírt egyenleteket oldja meg.
* [http://en.wikipedia.org/wiki/Lanczos_resampling Lánczos]
* [http://en.wikipedia.org/wiki/Lanczos_resampling Lánczos]
* Komplex megoldások
* Komplex megoldások
110. sor: 174. sor:
Képi matematika esetén végezhetünk műveleteket '''kép-érték''' vagy '''kép-kép''' között.
Képi matematika esetén végezhetünk műveleteket '''kép-érték''' vagy '''kép-kép''' között.


A lehetséges műveletek:
=== Lehetséges műveletek ===
* összeadás/kivonás/átlagolás
* összeadás/kivonás/átlagolás
* szorzás/osztás/normalizálás
* szorzás/osztás/normalizálás
116. sor: 180. sor:
* logikai műveletek (főleg bináris képeknél)
* logikai műveletek (főleg bináris képeknél)


A szorzás művelet használható textúrázásra (maszkolásra). A kivonás használható különbségképzésre, a háttér eltávolítására (mozgó/elmozdult objektumok keresésére).
=== Gyakorlati alkalmazás ===
* Kép-érték esetben az összeadás fényerő állítást jelent, a szorzás brightness/contrast állítást.[?]
* A szorzás művelet használható textúrázásra (maszkolásra).
* Az összeadás/átlagolás használható zajcsökkentésre.
* A kivonás használható különbségképzésre, a háttér eltávolítására (mozgó/elmozdult objektumok keresésére).