Képmátrix-képpont típusok
Numpy típusok
- Memóriatakarékossági okokból szürkeárnyalatos képek esetén a [0, 255] egész típusú értékkészlet reprezentációját jellemzően 8 bites, előjel nélküli egész számként valósítják meg. Ez az uint8 (unsigned int 8 bits) Numpy típusnak felel meg.
- Színes képeknél az egyes csatorna értékek kerülnek uint8 értékekként tárolásra. Többcsatornás (például színes) kép esetén a csatornák számát a Numpy tömb dimenzió megadásakor definiálhatjuk.
- Fontos! Előfordulhat, hogy egyes műveletek kivezetnek a [0, 255] értékkészletből, ekkor az eredmény csonkolása következik be. Ha ez nem elfogadható, akkor célszerű eleve olyan adattípust használni, ami nagyobb értékkészletet biztosít, például 16 bites előjeles (int16) vagy előjel nélküli (uint16) egészet, vagy lebegőpontos (float32) számot, és előzetesen ebbe alakítani át a képet.
- Használhatunk logikai típust (bool) is képmátrix elemtípusként.
OpenCV típusok
- Amennyiben OpenCV függvény vár típus megnevezést paraméterként, akkor az OpenCV által definiált típus elnevezésket kell használnunk. Az OpenCV típusok megnevezésében a 8, 16 és 32 számértékek a bitszélességet, az U az előjel nélküli, az S az előjeles, az F pedig a lebegőpontos típust jelenti.
- Többcsatornás képnél OpenCV esetén a típus megnevezéséhez kell a C betűt (Channel rövidítése) és a csatornák számát számként hozzáírni. Például a CV_8UC3 a 3 csatornás, előjel nélküli 8 bites egész reprezentációjú képtípus lesz. Ha a csatornaszámot nem adjuk meg, akkor 1 az alapértelmezés.
Összefoglaló
Az alábbi táblázatban foglaljuk össze a leggyakoribb típus megnevezéseket és értékkészleteket:
Numpy | OpenCV | Leírás |
np.uint8 | cv2.CV_8U | Előjel nélküli, 8 bites egész szám: [0, 255] |
np.uint16 | cv2.CV_16U | Előjel nélküli, 16 bites egész szám: [0, 65535] |
np.int8 | cv2.CV_8S | Előjeles, 8 bites egész szám: [-128, 127] |
np.int16 | cv2.CV_16S | Előjeles, 16 bites egész szám: [-32768, 32767] |
np.float32 | cv2.CV_32F | 32 bites, IEEE 754 formátumú lebegőpontos szám |
bool |
Logikai igaz-hamis (False, True) érték. |