- Mik azok a képek?
- Hogyan tárolja a számítógép a képeket
- Miért nehéz egy gépnek azonosítani a képeket?
- Az OpenCV alkalmazása és felhasználása
- Az OpenCV telepítése Python és Anaconda alkalmazással
- Képek megnyitása és mentése az OpenCV-ben
- Szürke méretarányú kép az OpenCV-ben
- Színterek
- Az RGB kép egyes összetevőinek feltárása
- Kép konvertálása egyedi RGB komponensekké
- A kép hisztogrammi ábrázolása
- Képek és alakzatok rajzolása az OpenCV segítségével
A művészet a látás egyik módja, és azt mondják, hogy a látás hisz, de ennek az ellenkezője is igaz, a hisz a látás, és nagyon nehéz elképzelni, hogy ebben a világban éljünk a látás ajándéka nélkül - a szemünk, milyen csodálatos csecsemőnek lenni amikor csak kinyílik a szemünk, látjuk a világot, és elkezdtük felismerni és látni a körülöttünk lévő világot, de ahogy telik az idő, ugyanaz a csodálatos élmény mindennapossá válik. De ahogy haladunk a technológiával, azon a határon vagyunk, ahol a gépek is képesek meglátni és megérteni. Jelenleg nem úgy tűnik, hogy a sci-fi, ha csak a telefon feloldásához arcod, de a történet a fejlesztés a gépi látás kelt hosszú vissza több mint 20 éve.
A kezdeti formális lépést ezen a területen 1999-ben tették meg egy Intel-kezdeményezés során, amikor az összes folyamatban lévő kutatást az eredetileg C ++ nyelven írt OPEN CV (Open Source computer vision) keretében, az első nagyobb 1.0-s kiadással, 2006-ban második 2009-ben, 2015-ben harmadik és 2018-ban negyedik. Most az OpenCV C ++, Python és Java interfészekkel rendelkezik, és támogatja a Windows, Linux, Mac OS, iOS és Android rendszereket. Így könnyen telepíthető a Raspberry Pi-be Python és Linux környezettel. Az OpenCV-vel és a csatlakoztatott kamerával rendelkező Raspberry Pi sok valós idejű képfeldolgozó alkalmazás létrehozására használható, például Arcfelismerés, Arczár, Objektumkövetés, Autó rendszámtábla-felismerés, Otthoni biztonsági rendszer stb.
Mielőtt belevágna a képfeldolgozás elsajátításába az openCV segítségével, fontos tudni, hogy melyek a képek, és hogyan érzékelik ezeket a képeket az emberek és a gépek.
Mik azok a képek?
A képek a látható fény spektrumának kétdimenziós ábrázolása. A látható fényspektrum pedig csak egy része az elektromágneses spektrumnak, amely ott fekszik az infravörös és az ultraibolya spektrum között.
Hogyan képződnek a képek: - amikor a fény visszaverődik egy tárgyról egy filmre, egy érzékelőre vagy a retinára.
Így működik a szemünk, és egy gát segítségével elzárja a fények legtöbb pontját, így egy kis nyílás marad, amelyen keresztül a fény áthaladhat. Ezt rekesznek nevezzük, és sokkal fókuszált képet alkot, és működőképes modell a tűs lyukú kamerához, de van egy tűs lyukú kamerában probléma, hogy ugyanolyan mennyiségű fény fog bejutni a rekeszbe, amely nem lehet megfelelő a képződött filmhez vagy képhez, és nem is tudunk fókuszált képet kapni, így a képet fókuszálni a filmet előre-hátra kell mozgatni, de ez sok helyzetben problémás.
Vagy megoldhatjuk ezt a problémát lencsék használatával, ez lehetővé teszi számunkra a rekeszméret szabályozását, és a fotózásnál f Stop néven ismert, általában alacsonyabb az f Stop értéke a fotózásnál.
A rekesz mérete lehetővé teszi, hogy szép mélységélességbe kerüljünk a fotózás során Bokeh néven, ez lehetővé teszi számunkra, hogy homályos legyen a háttér, miközben a képre koncentrálunk.
Hogyan tárolja a számítógép a képeket
Lehet, hogy hallott már különféle képformátumokról, mint például a.png,.jpgG és stb., Ezek mind az analóg világunk digitális ábrázolása, a számítógépek úgy csinálják, hogy a képet digitális kódba fordítják tárolás céljából, majd a fájlt újra képpé értelmezik. kijelző. De az alapoknál közös platformot használnak a képek tárolásához, és ugyanez igaz az openCV-re is.
OpenCV használ RGB (vörös, zöld és kék) színtér alapértelmezés szerint a képek, ahol minden egyes pixel koordinátája (x, y) tartalmaz 3 közötti értékeket az intenzitásban 8 bites formában, azaz (0-255, 2 8).
Az egyes színek különböző intenzitásának összekeverése a teljes spektrumot megkapja, ezért a festészetben vagy a művészetben ezt a három színt elsődleges, az összes többit másodlagosnak tekintjük, mivel a másodlagos színek nagy részét az elsődleges színek alkothatják. A sárga színhez hasonlóan a következő értékek vannak: Piros - 255; Zöld - 255; Kék - 0.
Most a képeket többdimenziós tömbökben tárolják. A programozásban a tömb az objektumok gyűjteménye. És itt három típusú 1D, 2D és 3D tömböt foglalkoztunk, ahol a „D” a dimenziót jelenti.
A színes képeket háromdimenziós tömbökben tárolják, ahol a harmadik dimenzió az RGB színeket képviseli (amelyeket később látni fogunk), és együttesen különböző intenzitású képpontokat képeznek egy kép számára, míg a fekete-fehér képeket kétdimenziós tömbökben tárolják és kétféle fekete-fehér kép is létezik: szürkeárnyalatos és bináris képek.
A szürkeárnyalatos képek a kétdimenziós tömb szürke árnyalataiból képződnek, míg a bináris képek fekete vagy fehér pixelek.
Miért nehéz egy gépnek azonosítani a képeket?
A számítógépes látás önmagában is kihívást jelentő feladat, el tudja képzelni, milyen nehéz látás, felismerés és azonosulás érzetét kelteni a gépben. A következő tényezők teszik olyan nehézzé a számítógépes látást.
- A kamera érzékelője és az objektív korlátai
- Nézőpontváltozatok
- Változó világítás
- Méretezés
- Oklúziók
- Tárgyosztályváltozatok
- Kétértelmű képek / optikai illúziók
Az OpenCV alkalmazása és felhasználása
A nehézségek ellenére a Computer Vision számos sikertörténettel rendelkezik
- Robotnavigáció - önvezető autók
- Arcfelismerés és -felismerés
- Keresőmotor képkeresése
- Rendszámtábla olvasása
- Kézírás-felismerés
- Snapchat és arcszűrők
- Tárgyfelismerés
- Labda- és játékoskövetés a sportban
- És még sok más!
Az OpenCV telepítése Python és Anaconda alkalmazással
Az OpenCV C ++ nyelven íródott, de nagyon nehéz megvalósítani a C ++ alkalmazással, ezért úgy döntünk, hogy egy magas szintű nyelvet használunk, mint python, és vannak további előnyei is az OpenCV Python- nal történő megvalósításának, mivel a Python az egyik legegyszerűbb nyelv kezdőknek is Rendkívül hatékony adattudományi és gépi tanulási alkalmazások számára, valamint képeket tárol a numerikus tömbökben, ami lehetővé teszi számunkra, hogy nagyon hatékony műveleteket végezzünk.
Az alapvető programozás hasznos az Exposure to High School Level Math, egy webkamera, a Python 2.7 vagy a 3.6 használatakor (az Anaconda csomag előnyben részesítendő).
1. lépés: Töltse le és telepítse az Anaconda Python csomagot
Látogasson el a következő oldalra: https://www.anaconda.com/download, és válassza ki, hogy a gépe milyen időjárási viszonyok között állítja be a Windows, a Linux vagy a Mac rendszert, és választhat a Python 2.7 vagy a Python 3.7 verzióhoz akár 64 bites, akár 32 bites rendszerekhez, de most egy nap a rendszer legnagyobb része 64 bites.
A python anaconda terjesztése a Spyder stúdióval, a jupyter noteszgépekkel és az anaconda promptdal együtt érkezik, ami szuperbaráttá teszi a python használatát. A példákhoz a spyder stúdiót használnánk.
A választás a python 2.7 vagy a 3.7 között teljesen semleges, de a példákhoz azonban a python 3.7-et használnánk, mivel ez a python jövője, és 2020-ban átvesszük a python 2.7-et, a könyvtárak többségét a python 3.7-ben is fejlesztjük a python jövőbeli aspektusát szem előtt tartva. Szintén megadja az elvárt matematikai műveletek, például (2/5 = 2,5) várt eredményeit, míg a python 2.7 ezt 2-re értékelné. A nyomtatást a python 3.7 (print ("hello")) függvényeként is kezeljük, így gyakorlati segítséget nyújt a programozóknak.
2. lépés. Virtuális platform létrehozása OpenCV-vel
Telepíteni fogjuk az OpenCV-t egy virtuális platform létrehozásával a spyder számára az Anaconda parancssor és az ide feltöltött YML fájl használatával.
Az YML fájlokkal telepítjük az összes szükséges csomagot és könyvtárat, de ha további csomagokat akarsz telepíteni, akkor az anaconda parancssor segítségével egyszerűen telepítheted az adott csomag parancsának futtatásával.
Lépjen a Windows keresés ikonjára, és keresse meg az anaconda prompt terminált, amelyet az imént telepített anaconda mappájában talál.
Ezután meg kell találnia a letöltött YML fájlt, és innen két lehetősége van: megváltoztatja a terminál könyvtárát arra a helyre, ahová az YML fájlt letölti, vagy pedig másolja az YML fájlt abba a könyvtárba, ahová az anaconda telepítve van a legtöbb esetben esetekben a C: \ meghajtón belül lenne, miután az YML fájlt átmásolta a megadott helyre, futtassa a következő parancsot a parancssorban
conda env create –f virtual_platform_windows.yml
Mivel a rendszerem Windows rendszeren fut, az YML fájl és a parancs megegyezik a Windows rendszerrel, azonban a rendszernek megfelelően módosíthatja úgy, hogy a Windows rendszert linuxra vagy mac-ra cseréli.
Megjegyzés: - Ha a csomag kibontása hibát okoz, először telepítse a pytorch és a numpy programot , majd futtassa a fenti parancsot.
Most keresse meg az anaconda navigátort, és ott egy legördülő menü jelenik meg az „Applications on ___” menüből, majd válassza ki a virtuális környezetet, majd onnan kell elindítania a Spyder stúdiót.
És ennyi, készen áll a kezdésre!
Képek megnyitása és mentése az OpenCV-ben
Itt elmagyarázunk néhány alapvető parancsot és terminológiát a Python használatához az OpenCV-ben. Az OpenCV imread, imshow és imwrite három alapvető funkcióját ismerjük meg.
A #kommenteket a pythonban # szimbólum adja
Importálja az opencv parancsot a pythonban
import cv2
Töltsön be egy képet az „imread” használatával, megadva a kép elérési útját
image = cv2.imread ('input.jpg')
Ez a kép mostantól be van töltve és tárolva a pythonban, mint változó, amelyet képnek nevezünk
Most a képváltozónk megjelenítéséhez az 'imshow' parancsot használjuk, és az imshow függvény első paramétere a képablakban látható cím, és a nevet karakterláncként kell ábrázolni ('' ').
cv2.imshow ('hello world', kép)
A waitkey lehetővé teszi számunkra, hogy bevisszük az információkat, amikor a képablak nyitva van, üresen hagyva csak várja az anykey megnyomását a folytatás előtt, számok elhelyezésével (kivéve 0) megadhatunk egy késleltetést, hogy meddig tartsa nyitva az ablakot (idő ezredmásodpercekben itt).
cv2.waitKey ()
A 'destrAllWindows' bezárja az összes nyitott ablakot, ennek elmulasztása esetén a program lefagy.
cv2.destroyAllWindows ()
, ehhez a numpy-t fogjuk használni, a numpy egy könyvtár a python programozáshoz, amely támogatást ad a nagy többdimenziós tömbökhöz és mátrixokhoz.
import cv2 #importing numpy import numpy as np image = cv2.imread ('input.jpg') cv2.imshow ('hello_world', image) #shape függvény nagyon hasznos, ha egy tömb dimenzióit nézzük , egy duplát ad vissza, amely egy kép nyomtatásának dimenzióját adja meg (image.shape) cv2.waitKey () cv2.destroyAllWindows ()
konzol kimenet - (183, 275, 3), A kép két dimenziója 183 pixel magasságú és 275 pixel széles, a 3 pedig azt jelenti, hogy három másik komponens (R, G, B) alkotja ezt a képet (azt mutatja hogy a színes képeket háromdimenziós tömbökben tárolják).
print ('Kép magassága:', (image.shape, 'pixels')) print ('Kép szélessége:', (image.shape, 'pixel'))
konzol kimenete - Kép magassága: (183, 'pixel')
Kép szélessége: (275, 'pixel')
A szerkesztett kép mentése az OpenCV-be
Az 'imwrite' szót használjuk a menteni kívánt fájlnév és kép megadásához.
cv2.imwrite ('output.jpg', kép) cv2.imwrite ('output.png', kép)
Az első argumentum a menteni kívánt fájl neve, {olvasni vagy elmenteni az általunk használt fájlt (''), hogy azt karakterláncként jelöljük}, a második argumentum pedig a fájl neve.
Az OpenCV lehetővé teszi a kép különböző formátumokban történő mentését.
Szürke méretarányú kép az OpenCV-ben
A szürkeskála az a folyamat, amelynek során a kép teljes színből szürke (fekete-fehér) árnyalattá alakul át
Az opencv-ben sok függvény szürkeárnyalja a képeket a feldolgozás előtt. Ez azért történik, mert leegyszerűsíti a képet, szinte zajcsökkentésként működik és növeli a feldolgozási időt, mivel kevesebb információ van a képen (mivel a szürkeárnyalatos képeket kétdimenziós tömbökben tárolják).
import CV2 # terhelés a bemeneti kép image = cv2.imread (input.jpg) cv2.imshow ('eredeti', kép) cv2.waitKey () # kilépünk használat cvtcolor, hogy áttér a szürkeárnyalatos gray_image = cv2.cvtColor (image, cv2.COLOR_BGR2GRAY) cv2.imshow ('szürkeárnyalatos', szürke_kép) cv2.waitKey () cv2.destroyALLWindows ()
A kép szürkeárnyalattá alakításának egyszerűbb módja, ha csak a képnévhez adja hozzá az imread függvény 0 argumentumát
import cv2 grey_image = cv2.imread ('input.jpg', 0) cv2.imshow ('szürkeárnyalatos', grey_image) cv2.waitKey () cv2.destroyAllWindows ()
import cv2 import numpy as np image = cv2.imread ('input.jpg') print (image.shape) cv2.imshow ('original', image) cv2.waitKey () gray_image = cv2.cvtColor (image, cv2.COLOR_BGR2GRAY) cv2.imshow ('grayscale', grey_image) print (grey_image.shape) cv2.waitKey () cv2.destroyALLWindows ()
Konzol kimenet: - (183, 275, 3) - színes képhez
(183, 275) - szürkeárnyalatos képhez
Ennélfogva világosan mutatja, hogy a színes képeket háromdimenziós tömbök, míg a szürkesképet kétdimenziós tömbök képviselik.
Színterek
A színtér a képek tárolásának módja. Az RGB, a HSV, a CMYK a különböző színtér, ezek csak egyszerű módszerek a szín megjelenítésére.
RGB - piros, zöld és kék.
HSV - színárnyalat, telítettség és érték.
A CMYK-t pedig általában használják a tintasugaras nyomtatókban.
RGB vagy BGR színtér
Az OpenCV alapértelmezett színtere az RGB. Az RGB egy additív színmodell, amely különböző intenzitású / fényerejű kék, zöld és piros színek kombinálásával generál színeket. Az OpenCV-ben 8 bites színmélységet használunk.
- Piros (0–255)
- kék (0–255)
- Zöld (0–255)
Az OpenCV azonban a színeket BGR formátumban tárolja.
Szórakoztató tény: - A BGR sorrendet használjuk a számítógépekben, mivel a 32 bites egész számokat a memóriában tárolják, így végül RGB-ként tárolják. A színt képviselő egész szám, pl.: - 0X00BBGGRR 0XRRGGBB formátumban kerül tárolásra.
HSV színtérA HSV (színárnyalat, telítettség és érték / fényerő) egy színtér, amely megkísérli megjeleníteni az ember által érzékelt színeket. A színinformációkat az RGB színpontok hengeres ábrázolásában tárolja.
Színárnyalat - színérték (0-179)
Telítettség - A szín rezgése (0–255)
Érték - Fényerő vagy intenzitás (0–255)
A HSV színtér formátuma hasznos a színfelosztásban. Az RGB-ben az adott szín kiszűrése nem könnyű, azonban a HSV sokkal könnyebbé teszi a színtartományok beállítását az adott szín szűrésére, ahogyan mi ezeket észleljük.
A színárnyalat a színt képviseli a HSV-ben, a színárnyalat értéke 0 és 180 között mozog, és nem 360, tehát nem fejezi be a teljes kört, ezért másképp van feltérképezve, mint a standard.
Színtartomány szűrők
- Piros - (165-15)
- Zöld - (45-75)
- Kék - (90-120)
Mivel tudjuk, hogy az RGB (piros, zöld és kék) színtérben tárolt képek így az OpenCV ugyanazt mutatja nekünk, de az opencv RGB formátumával kapcsolatban az első dolog, amire emlékezni kell, hogy valójában BGR, és megismerhetjük a kép alakja.
import cv2 import numpy as np image = cv2.imread ('input.jpg') # B, G, R érték az első 0,0 pixel B, G, R = képnyomtatáshoz (B, G, R) (kép).shape) #most, ha ezt szürkeárnyalatos képre alkalmazzuk szürke_img = cv2.cvtColor (kép, cv2.COLOR_BGR2GRAY) nyomtatás (szürke_img.alak) #szürke_kép képpontérték 10,50 pixel nyomtatáshoz (szürke_img)
Konzol kimenet: nyomtatás (B, G, R) - 6 11 10
nyomtatás (image.shape) - (183, 275, 3)
nyomtatás (szürke_img.alak) - (183, 275)
nyomtatás (szürke_img) - 69
Most csak két dimenzió van egy szürkeárnyalatos képen, mivel emlékezünk arra, hogy a színes képet három dimenzióban tároljuk, a harmadik dimenzió az (R, G, B), míg a szürkeárnyalatosban csak két dimenzió van jelen, mivel (R, G, B) hiányzik, és egy adott pixelpozícióhoz csak egyetlen értéket kapunk, míg színes képnél három értéket.
Egy másik hasznos színtér a HSV
import cv2 image = cv2.imread ('input.jpg') hsv_image = cv2.cvtColor (image, cv2.COLOR_BGR2HSV) cv2.imshow ('HSV image', hsv_image) cv2.imshow ('Hue channel', hsv_image) cv2. imshow ('telítettségcsatorna', hsv_image) cv2.imshow ('értékcsatorna', hsv_image) cv2.waitKey () cv2.destroyAllWindows ()
A kód futtatása után láthatja a négy képet, amelyek közül három az egyes csatornákról, az egyik pedig kombinált HSV-kép.
A színárnyalat-csatorna képe elég sötét, mert értéke csak 0 és 180 között változik.
Vegye figyelembe azt is, hogy az imshow funkció megpróbálja megmutatni az RGB vagy BGR képet, de a HSV konverzió átfedi.
Az értékcsatorna fényereje miatt hasonló lesz a kép szürkeárnyalatához.
Az RGB kép egyes összetevőinek feltárása
import cv2 image = cv2.imread ('input.jpg') # Az opencv osztott függvénye felosztja az egyes képindexeket B, G, R = cv2.split (image) cv2.imshow ("Red", R) cv2.imshow "Zöld", G) cv2.imshow ("Kék", B) # az eredeti kép készítése az egyes színkomponensek összevonásával egyesítve = cv2.merge () cv2.imshow ("egyesült", egyesült) # a kék szín megerősítése összevonva = cv2.merge () cv2.imshow ("egyesült a kék erősítéssel", egyesült) # az egyes színkomponensek alakját képviseli. # a kimenetnek csak két dimenziója lesz, amelyek magasságot és szélességet jelentenek, mivel az RGB komponens harmadik eleme egyedileg ábrázolt nyomtatás (B.alak) nyomtatás (R.alak) nyomtatás (G.alak) cv2.waitKey (0) cv2.destroyAllWindows ()
Konzol kimenete: #dimensions of image from shape function
(183, 275)
(183, 275)
(183, 275)
Kép konvertálása egyedi RGB komponensekké
Az alábbi kódban létrehoztunk egy nullákból álló mátrixot a HxW kép dimenzióival, nulla nullákkal töltött tömböt adunk vissza, de azonos dimenziókkal.
Az alakfüggvény nagyon hasznos, ha egy kép dimenzióját nézzük, és itt ezt az alakfüggvényt szeleteltük. Tehát a forma mindent megkaparintana a kijelölt pontokig, azaz a második kijelölt pontokig, ami a kép magassága és szélessége lenne, mivel a harmadik a kép RGB-összetevőjét képviseli, és itt nincs szükségünk rá.
import cv2 import numpy as np image = cv2.imread ('input.jpg') B, G, R = cv2.split (image) nullák = np.zeros (image.shape, dtype = "uint8") cv2.imshow ("RED", cv2.merge ()) cv2.imshow ("Zöld", cv2.merge ()) cv2.imshow ("Kék", cv2.merge ()) cv2.waitKey (0) cv2.destroyAllWindows ()
A kép hisztogrammi ábrázolása
A kép hisztogramos ábrázolása a képek összetevőinek megjelenítésének módszere.
A következő kód segítségével elemezheti a képet a kombinált és az egyes színkomponensek szín hisztogramján keresztül.
import cv2 import numpy as np # importálnunk kell a matplotlib-et a hisztogram diagramok létrehozásához. import matplotlib.pyplot mint plt image = cv2.imread ('input.jpg') hisztogram = cv2.calcHist (,, Nincs,,) # ábrázoljuk a hisztogram, Ravel () flatens mi képtömb plt.hist (image.ravel (), 256,) plt.show () #viewing külön színcsatornával color = ('b', 'g', 'r') # kilépünk tudni válasszuk szét a színt és ábrázoljuk mindegyiket hisztogramban az i, col felsorolásban (szín): hisztogram2 = cv2.calcHist (,, Nincs,,) plt.plot (hisztogram2, color = col) plt.xlim () plt.show ()
Értsük meg a calcHist függvényt annak minden egyes paraméterével
cv2.calcHist (képek, csatornák, maszk, hisztize , tartományok)
Képek: az uint 8 vagy a float 32 forrás képe. Szögletes zárójelben kell megadni, azaz „”, amelyek a második szintű tömböt is jelzik, mivel az opencv képe tömb formájú adat.
Csatornák: szögletes zárójelben is megadva. Ez a csatorna indexe, amelyhez hisztogramot kalkulálunk, például ha a bemenet szürkeárnyalatos kép, akkor annak értéke, az átadható színes képek esetében, vagy a kék, a zöld és a piros csatorna hisztogramjának kiszámításához.
Maszk: maszk kép. a teljes kép hisztogramjának megtalálásához a „Nincs” értéket adjuk meg. de ha meg akarja találni a kép egy adott területének hisztogramját, létre kell hoznia ehhez egy maszk képet, és maszkként kell megadnia.
Histsize: Ez a BIN számunkat jelenti. Szögletes zárójelben kell megadni, hogy teljes skálán haladjunk.
Tartományok: Ez a tartományunk, általában az
Képek és alakzatok rajzolása az OpenCV segítségével
Az alábbiakban néhány példa vonalak, téglalap, sokszög, kör stb. Rajzolására az OpenCV-ben.
import cv2 import numpy as np # fekete négyzet kép létrehozása = np.zeros ((512 512,3), np.uint8) # ezt fekete-fehérben is létrehozhatjuk, azonban nem lennének változások image_bw = np.zeros ((512,512), np.uint8) cv2.imshow ("fekete téglalap (szín)", kép) cv2.imshow ("fekete téglalap (fekete-fehér)", image_bw)
Vonal
# létrehoz egy vonalat a fekete négyzet felett # cv2.line (kép, kezdő koordináták, befejező koordináták, szín, vastagság) # 5 pixel vastagságú átlós vonal rajzolása image = np.zeros ((512 512,3), np.uint8) cv2.line (kép, (0,0), (511,511), (255,127,0), 5) cv2.imshow ("kék vonal", kép)
Téglalap
# téglalap létrehozása fekete négyzet fölött # cv2.téglalap (kép, kezdő koordináták, befejező koordináták, szín, vastagság) # 5 pixel vastagságú téglalap rajzolása image = np.zeros ((512 512,3), np.uint8) cv2.téglalap (kép, (30,50), (100,150), (255,127,0), 5) cv2.imshow ("téglalap", kép)
Kör# kör létrehozása fekete négyzet felett # cv2.circle (kép, középpont, sugár, szín, kitöltés) image = np.zeros ((512,512,3), np.uint8) cv2.circle (image, (100,100), (50), (255 127,0), - 1) cv2.imshow ("kör", kép)
Poligon# sokszög kép létrehozása = np.zeros ((512 512,3), np.uint8) #lets meghatározza a négy pontot pts = np.array (,,,,, np.int32) #lets most átformálja pontjainkat a vonalláncok pts = pts.reshape ((- - 1,1,2)) cv2.polylines (image,, True, (0,255,255), 3) cv2.imshow ("sokszög", kép)
Szöveg# szöveg beírása az opencv # cv2.putText (kép, 'megjelenítendő szöveg', a bootom bal kezdőpontja, betűtípus, betűméret, szín, vastagság) használatával image = np.zeros ((512 512,3), np.uint8) cv2. putText (image, "hello world", (75,290), cv2.FONT_HERSHEY_COMPLEX, 2, (100,170,0), 3) cv2.imshow ("hello world", image) cv2.waitKey (0) cv2.destroyAllWindows ()
A Computer Vision és az OpenCV nagyon átfogó témák, amelyeket át kell fedni, de ez az útmutató jó kiindulópont az OpenCV és a képfeldolgozás elsajátításához.