Tudd Intuíció, előadás, alapvető képfeldolgozási műveletek

2. Áttekintés a modul funkciók imgproc OpenCV könyvtár

2.1. Cvertka és szűrők

Vonal szűrők - a család a legegyszerűbb képszűrők szempontjából matematikai leírása. [6] Tegyük fel, hogy van egy szürkeárnyalatos kép. Ezután bármely lineáris szűrő határozza meg egy valós értékű függvény definiált a raszter. Ez a funkció az úgynevezett szűrő kernel. és a szűrési műveletet úgy végezzük, hogy kiszámítjuk a diszkrét konvolúció:

Jellemzően, a szűrőt kernel alkalmazzák egy pont szomszédságában 0, így a variációs tartomány határozza meg a kiválasztott indexet és az alakja és mérete a környék. Ez a környék néhány forrásból úgynevezett minta vagy a rekeszt. A konvolúciós számítási eljárást úgy hajtjuk végre, kiterjesztve pixelek a teljes kép, a minta van ráültetve minden aktuális pixelenként a beállítást egy adott minta pont - a helyzetét a vezető mintázat. és kiszámítja a konvolúció. Meg kell külön figyelni a helyzetet, amikor az aktuális képpont szélén van a kép. Ezt a problémát meg lehet oldani több módon:

  • Vágja le a széleit, azaz nem szűrhető az összes határ pixel, amelyekre lehetetlen előírni a minta nem térnek el a képet.
  • Nem veszik figyelembe az összegzése a pixel, ami nem is létezik.
  • Mi kiterjeszteni a közelben a határ pixelek extrapoláció (például az egyszerű párhuzamos határoló pixel).
  • Kiterjesztése a meghatározása a szomszédságában határ pixel keresztül tükrös visszaverődés, azaz a csomagolja egy képet a tórusz.

A választott megoldás az alkalmazástól függ, így például a tükörkép, a gyakorlatban nem egészen természetes módon.

Kiszámításához kanyarulatok OpenCV könyvtárnak van egy függvénye filter2D.

Nézzük meg a paramétereket a fenti funkció.

  • src - a forrás képet.
  • DST - konvolúció. Ugyanaz a csatornák számát és mélységét az eredeti képet.
  • ddepth - a mélység a kapott kép. Ha a bemeneti függvény át negatív érték, a mélység egybeesik a mélysége a bemeneti kép.
  • kernel - konvolúciós kernel, egy egycsatornás valós mátrix.
  • horgony - vezető mag pozícióját. Alapértelmezés szerint, ez az értéke (-1, -1), ami azt jelenti, hogy a vezető pozíció központjában a mag.
  • delta - állandó, amely hozzá lehet adni az intenzitás értéke a szűrés után, mielőtt a azonnali eredménye rekordot.
  • borderType - paraméter meghatározására szolgáló eljárást határ kiegészítés, hogy képes legyen szűrőt alkalmaz a határ pixel az eredeti kép. Bármilyen érték típusú BORDER_ * kivéve BORDER_TRANSPARENT és BORDER_ISOLATED.

A funkció biztosítja a használatát egy tetszőleges lineáris szűrő kernel kernel, hogy a kép src. szűrési eredmény kerül rögzítésre tömb DST. Ha a nyílás a képen kívül, a határ pixelek is kiegészítik módszer szerint meghatározott borderType. Az új érték a pixel intenzitás alábbi képlettel számítottuk ki:

Abban az esetben, többcsatornás kép kernel kerül az egyes csatornák külön-külön.

Itt egy példa filter2D funkciót. A bemutatott program lehetővé teszi a képek letöltésére és alkalmazása lineáris szűrő igazi rendszermagot megadott állandó kernel. Továbbá, a leképezés kezdő, és a kapott képeket.

Az alábbi ábrán a kimenet a fenti program (ábra. 7.1. A jobb oldalon). Nyilvánvaló, hogy a használata a szűrő mag rögzített programkód (félkövér), csökkenéséhez vezetett ellentétben az eredeti vizsgálati kép (ábra. 7.1. Balra).

Tudd Intuíció, előadás, alapvető képfeldolgozási műveletek


Ábra. 7.1. Alkalmazásának eredménye szűrő

Figyeljük meg, hogy abban az esetben nagy atommag (körülbelül 11x11 pixel méretű) kiszámításához használja a konvolúciós gyors Fourier-transzformáció, a kis- magok - line algoritmus. Továbbá, ha egy elkülöníthető mag, azaz a is képviselteti magát egy pár atommagok szekvenciálisan lehet alkalmazni a sorok és oszlopok a képek külön-külön, ez biztosítja a hatékonyabb végrehajtást lineáris szűrő funkció sepFilter2D. Ha ezt a funkciót kifejezett, kétdimenziós magok rowKernel és columnKernel.

Kapcsolódó cikkek