OpenCV: Szegmentálás küszöbértékkel
Ebben a cikkben az objektumok szegmentálásának alapvető technikája Küszöbérték - De mielőtt már az alábbiakban átmegyünk a részletekbe, az OpenCV rövid áttekintése. OpenCV (Nyílt forráskódú számítógépes látás) egy platformok közötti nyílt forráskódú könyvtár, amely a valós idejű számítógépes látási feladatok elvégzésére irányul sokféle területen, például: InputArray SRC: Bemeneti kép (8-bites vagy 32 bites) OutputArray DST: Kimeneti kép (ugyanolyan méretű, mint a bemenet) Double küszöb: Állítsa be a küszöbértéket Double MaxVal: Az 1. és 2. típusban használt Maxval int type*: Megadja a használni kívánt küszöb típusát. (0-4) *A küszöbértékek listája alatt található. Bemeneti kép
A bemeneti RGB -képet először szürkeárnyalatos képré alakítják, mielőtt a küszöbértéket megtennék.
Küszöbértékek
- Arcfelismerés
- Írisz -felismerő rendszerek
- Gesztusfelismerés
- Emberi -számítógépes interakció (HCI)
- Mobil robotika
- Tárgyi azonosítás
- Szegmentálás és felismerés
- Sztereopsis sztereo látás: mélységérzékelés 2 kamerából
- Kibővített valóság
- A küszöbértéknél alacsonyabb intenzitásértékű képpontok.
- A küszöbértéknél nagyobb intenzitásértékű képpontok.
A bemeneti RGB -képet először szürkeárnyalatos képré alakítják, mielőtt a küszöbértéket megtennék.
Küszöbértékek
A korábban kapott két csoport közül a pixel intenzitású tagoknál nagyobb csoportból áll, mint a beállított küszöbérték, a MAX_VALUE hozzárendelés, vagy egy szürkeárnyalat esetén 255 (fehér) érték. A fennmaradó csoport tagjai pixel intenzitása 0 (fekete).
Ha a pixel -intenzitás értéke (x y) értékben a forrásképnél nagyobb, mint a küszöbérték, akkor a végső képen szereplő értéket a Maxval értékre állítják.
Inv. A bináris küszöb megegyezik a bináris küszöbértékkel. Az egyetlen alapvető különbség az inv.bináris küszöbértékben, amelyben a pixel intenzitása nagyobb, mint a beállított küszöbérték, a „0” -t hozzárendeljük, míg a fennmaradó pixeleket a küszöbértéknél kevesebb intenzitással kell beállítani.
Ha a pixel -intenzitás értéke (x y) értékben a forrásképnél nagyobb, mint a küszöbérték, akkor a végső képen szereplő érték 0 -ra van állítva, akkor a Maxval értékre van állítva.
Az a csoport, amelynek pixel intenzitása nagyobb, mint a beállított küszöbérték, a beállított küszöbre csonka, vagyis a pixelértékek megegyeznek a beállított küszöbértékkel. Az összes többi érték változatlan marad.
Ha a pixel intenzitási értéke (x y) értékben a forrásképnél nagyobb, mint a küszöbérték, akkor a végső képen szereplő érték küszöbértékre van beállítva, akkor változatlan.
Egy nagyon egyszerű küszöbértékelési technika, amelyben a pixel intenzitást „0” -ra állítjuk a csoport minden pixeljére, amelynek pixel intenzitási értéke kevesebb, mint a küszöb.
Ha a pixel -intenzitás értéke (x y) a forrásképnél nagyobb, mint a küszöbérték, akkor a végső kép (x y) értékének értéke nem változik. Az összes fennmaradó pixel „0” -ra van állítva.
Az előző technikához hasonlóan a pixelintenzitást „0” -ra állítjuk a pixel intenzitás értékével rendelkező csoport összes pixeljére, mint a küszöbértéknél.
Ha a pixel -intenzitás értéke (x y) értékben a forrásképnél nagyobb, mint a küszöbérték, akkor a végső kép (x y) értékének értéke „0” -ra van állítva. Az összes fennmaradó pixel érték változatlan. Az OpenCV programok összeállításához az OpenCV könyvtár telepítéséhez van szükség a rendszerre. Az elkövetkező napokban egy egyszerű oktatóanyagot fogok küldeni. Ha már telepítette az OpenCV -t, futtassa az alábbi kódot az Ön által választott bemeneti képpel. CPP // CPP program to demonstrate segmentation // thresholding. #include #include #include #include using namespace cv ; int main ( int argc char ** argv ) { if ( argc != 2 ) { cout < < ' Usage: ' ' ' < < endl ; return -1 ; } int threshold_value = 0 ; // Valid Values: 0 1 2 3 4 int threshold_type = 2 ; // maxVal useful for threshold_type 1 and 2 int maxVal = 255 ; // Source image Mat src = imread ( argv [ 1 ] 1 ); cvNamedWindow ( 'Original' CV_WINDOW_NORMAL ); imshow ( 'Original' src ); Mat src_gray dst ; // Convert the image to GrayScale cvtColor ( src src_gray CV_BGR2GRAY ); // Create a window to display results cvNamedWindow ( 'Result' CV_WINDOW_NORMAL ); createTrackbar ( 'Threshold' 'Result' & threshold_value 255 ); while ( 1 ) { threshold ( src_gray dst threshold_value maxVal threshold_type ); imshow ( 'Result' dst ); waitKey ( 1 ); } }
Lehet, Hogy Tetszeni Fog
Top Cikkek
Kategória
Érdekes Cikkek