- Čo sú to obrázky?
- Ako počítač ukladá obrázky
- Prečo je pre stroj ťažké identifikovať obrázky
- Aplikácia a použitie OpenCV
- Inštalácia OpenCV s Python a Anaconda
- Otváranie a ukladanie obrázkov v OpenCV
- Obrázok sivej mierky v OpenCV
- Farebné priestory
- Skúmanie jednotlivých zložiek obrazu RGB
- Prevod obrazu na jednotlivé komponenty RGB
- Histogramová reprezentácia obrazu
- Kreslenie obrázkov a tvarov pomocou OpenCV
Umenie je spôsob videnia a hovorí sa, že videnie je uverenie, ale platí to aj opačne, verenie je videnie a je skutočne ťažké si predstaviť žiť v tomto svete bez daru videnia - našich očí, aké úžasné je byť nemluvňom keď sa naše oči len otvoria, vidíme svet a začali sme spoznávať a vidieť svet okolo nás, ale ako čas plynie, rovnaká úžasná skúsenosť sa stane všedným. Ako však napredujeme s technológiou, sme na hranici, keď ju môžu vidieť a porozumieť aj stroje. V súčasnosti sa to nezdá byť sci-fi, ak si telefón odomknete iba tvárou, ale príbeh vývoja strojového videnia sa datuje dávno pred viac ako 20 rokmi.
Počiatočný formálny krok v tejto oblasti bol vykonaný v roku 1999 v rámci iniciatívy Intel, keď bol celý prebiehajúci výskum podporovaný v rámci OPEN CV (Open Source computer vision), pôvodne napísaného v C ++, s jeho prvým veľkým vydaním 1.0 v roku 2006, druhým v roku 2009, tretí v roku 2015 a štvrtý, teraz v roku 2018. Teraz má OpenCV rozhranie C ++, Python a Java a podporuje Windows, Linux, Mac OS, iOS a Android. Dá sa teda ľahko nainštalovať na Raspberry Pi s prostredím Python a Linux. A Raspberry Pi s OpenCV a pripojenou kamerou možno použiť na vytvorenie mnohých aplikácií na spracovanie obrazu v reálnom čase, ako je detekcia tváre, zámok tváre, sledovanie objektov, detekcia ŠPZ automobilov, domáci bezpečnostný systém atď.
Predtým, ako sa pustíme do učenia sa spracovania obrázkov pomocou openCV, je dôležité vedieť, čo sú obrázky a ako ich ľudia a stroje vnímajú.
Čo sú to obrázky?
Obrázky sú dvojrozmerným zobrazením spektra viditeľného svetla. Spektrum viditeľného svetla je iba časťou elektromagnetického spektra, ktoré leží medzi infračerveným a ultrafialovým spektrom.
Ako sa tvoria obrazy: - keď sa svetlo odráža od predmetu na film, senzor alebo na sietnicu.
Takto pracujú naše oči a bariéra blokuje väčšinu svetiel, pričom malý otvor, ktorým svetlo môže prechádzať, sa nazýva clona a vytvára veľmi zameraný obraz a je funkčným modelom pre kameru s kolíkmi. ale v kamere s kolíkovým otvorom je problém, že do clony bude vstupovať rovnaké množstvo svetla, čo nemusí byť vhodné pre vytvorený film alebo obraz, taktiež nemôžeme získať zaostrený obraz, aby sme zaostrili obraz je potrebné pohybovať filmom tam a späť, čo je však v mnohých situáciách problematické.
Alebo môžeme tento problém vyriešiť pomocou objektívov, umožní nám to ovládať veľkosť clony a vo fotografii je známa ako f Stop, vo fotografovaní je všeobecne lepšia nižšia hodnota f Stop.
Veľkosť clony tiež umožňuje, aby sme sa vo fotografii dostali do peknej hĺbky ostrosti nazývanej Bokeh, ktorá nám umožňuje zaostriť na obrázok a mať tak rozmazané pozadie.
Ako počítač ukladá obrázky
Možno ste už počuli o rôznych obrazových formátoch, ako sú.png,.jpgG atď., Všetko toto predstavuje digitálne znázornenie nášho analógového sveta, počítače to robia tak, že prekladajú obraz do digitálneho kódu na uloženie a potom súbor interpretujú späť do obrázka. displej. Ale v základoch používajú spoločnú platformu na ukladanie obrázkov, a to isté platí pre openCV.
OpenCV štandardne používa pre svoje obrázky farebný priestor RGB (červený, zelený a modrý), kde každá súradnica pixelov (x, y) obsahuje 3 hodnoty v rozmedzí intenzít v 8-bitovej podobe, tj (0-255, 2 8).
Zmiešanie rôznych intenzít každej farby nám dáva celé spektrum, preto sa v maľbe alebo v umení tieto tri farby považujú za primárne farby a všetky ostatné za sekundárne, pretože väčšinu sekundárnych farieb môžu tvoriť primárne farby. Rovnako ako v prípade žltej máme aj tieto hodnoty: Červená - 255; Zelená - 255; Modrá - 0.
Teraz sú obrázky uložené vo viacrozmerných poliach. V programovaní je array séria zbierok objektov. A tu sa zaoberáme tromi typmi polí 1D, 2D a 3D, kde 'D' znamená rozmerové.
Farebné obrázky sú uložené v trojrozmerných poliach, kde tretia dimenzia predstavuje farby RGB (čo uvidíme neskôr), a spolu vytvárajú rôznu intenzitu pixelov pre obrázok, zatiaľ čo čiernobiele obrázky sú uložené v dvojrozmerných poliach a tiež existujú dva typy čiernobielych obrázkov v stupňoch šedej a binárnych obrázkov.
Obrázky v šedej škále sú tvorené z odtieňov šedej dvojrozmerného poľa, zatiaľ čo binárne obrázky sú pixely čiernej alebo bielej farby.
Prečo je pre stroj ťažké identifikovať obrázky
Počítačové videnie je sama o sebe náročná úloha, sami si viete predstaviť, aké ťažké je dať stroju zmysel pre videnie, rozpoznanie a identifikáciu. Nasledujúce faktory spôsobujú, že počítačové videnie je také ťažké.
- Obmedzenia snímača a objektívu fotoaparátu
- Varianty pohľadu bodu
- Zmena osvetlenia
- Škálovanie
- Oklúzie
- Variácie tried objektov
- Nejednoznačné obrázky / optické ilúzie
Aplikácia a použitie OpenCV
Napriek problémom má Computer Vision veľa úspešných príbehov
- Robotická navigácia - samoriadiace autá
- Detekcia a rozpoznanie tváre
- Vyhľadávanie obrázkov vo vyhľadávači
- Čítanie ŠPZ
- Rozpoznávanie rukopisu
- Filtre Snapchat a Face
- Rozpoznávanie objektov
- Sledovanie lopty a hráča v športe
- A mnoho ďalších!
Inštalácia OpenCV s Python a Anaconda
OpenCV je napísaný v C ++, ale je veľmi ťažké ho implementovať v C ++, a preto sme sa rozhodli implementovať ho v jazyku na vysokej úrovni ako python, a taktiež existujú ďalšie výhody implementácie OpenCV v pythone, pretože Python je jeden z najjednoduchších jazykov pre začiatočníkov tiež Je mimoriadne výkonný pre aplikácie dátovej vedy a strojového učenia a tiež ukladá obrázky do početných polí, čo nám umožňuje celkom ľahko vykonávať niektoré veľmi výkonné operácie.
Základné programovanie je užitočné v prípade webkamery Exposure to High School Level Math, Python 2.7 alebo 3.6 (uprednostňuje sa balík Anaconda).
Krok 1. Stiahnite a nainštalujte si balík Anaconda Python Package
Prejdite na: https://www.anaconda.com/download a vyberte si podľa počasia vášho počítača Windows, Linux alebo Mac a môžete si zvoliť verziu python 2.7 alebo python 3.7 pre 64 bitové systémy alebo 32 bitové systémy, ale teraz za deň je väčšina systému 64 bitová.
Distribúcia pythonu v anakonde je dodávaná so štúdiom Spyder, notebookmi jupyter a výzvou v anakonde, vďaka čomu je používanie pythonu veľmi príjemné. Na vykonanie príkladov by sme použili štúdio spyder.
Voľba medzi pythonom 2.7 alebo 3.7 je úplne neutrálna, ale pre príklady by sme používali python 3.7, pretože je to budúcnosť pythonu a prevezme python 2.7 vo forme 2020, taktiež väčšina knižníc je vyvíjaná v pythone 3.7 na mysli budúci aspekt pythonu. Poskytuje tiež očakávané výsledky týkajúce sa základných matematických operácií, ako napríklad (2/5 = 2,5), zatiaľ čo python 2.7 by ich vyhodnotil na 2. S printom sa tiež zaobchádza ako s funkciou v pythone 3.7 (print („ahoj“)), takže dáva programátorom ruky do ruky.
Krok 2. Vytvorenie virtuálnej platformy s OpenCV
Chystáme sa nainštalovať OpenCV vytvorením virtuálnej platformy pre spyder pomocou príkazu Anaconda a tu nahraného súboru YML.
So súbormi YML nainštalujeme všetky balíky a knižnice, ktoré by boli potrebné. Ak však chcete nainštalovať ďalšie balíky, môžete ich ľahko nainštalovať pomocou príkazu daného balíka pomocou príkazu anakonda.
Prejdite na ikonu vyhľadávania systému Windows a nájdite terminál rýchleho vyhľadávania Anaconda, ktorý nájdete vo svojom priečinku Anaconda, ktorý ste práve nainštalovali.
Potom musíte nájsť stiahnutý súbor YML a odtiaľ máte dve možnosti, buď zmeniť adresár terminálu na miesto, kde sa stiahne váš súbor YML, alebo buď skopírovať súbor YML do adresára, kde je vo väčšine nainštalovaná vaša anakonda. v prípade, že by to bolo vo vnútri jednotky C: \, po skopírovaní súboru YML do určeného umiestnenia SPusťte nasledujúci príkaz na výzvu
conda env create –f virtual_platform_windows.yml
Pretože môj systém je spustený v systéme Windows, súbor YML a príkaz zodpovedajú systému Windows, môžete ich však podľa svojho systému upraviť nahradením systému Windows systémom Linux alebo Mac.
Poznámka: - Ak sa pri extrakcii balíka vyskytne chyba, nainštalujte najskôr pytorch a numpy a potom spustite vyššie uvedený príkaz.
Teraz nájdite navigátor anakondy a bola by tu rozbaľovacia ponuka „Aplikácie na ___“ a odtiaľ vyberte virtuálne prostredie a odtiaľ musíte spustiť štúdio Spyder.
A je to, ste pripravení začať!
Otváranie a ukladanie obrázkov v OpenCV
Tu vysvetľujeme niektoré základné príkazy a terminológiu na používanie Pythonu v OpenCV. Dozvieme sa o troch základných funkciách v OpenCV imread, imshow a imwrite.
# komentáre v pythone sú dané symbolom #
Importujte OpenCV v Pythone pomocou príkazu
importovať cv2
Načítajte obrázok pomocou príkazu „imread“ s uvedením cesty k obrázku
image = cv2.imread ('input.jpg')
Teraz je tento obrázok načítaný a uložený v pythone ako premenná, ktorú sme pomenovali ako obrázok
Teraz, aby sme zobrazili našu premennú obrázka, použijeme „imshow“ a prvým parametrom pre funkciu imshow je nadpis zobrazený v okne obrázka a musí byť zadaný do („“), aby predstavoval meno ako reťazec
cv2.imshow ('hello world', obrázok)
klávesa waitkey nám umožňuje zadávať informácie, keď je otvorené okno s obrázkom. Ak ponecháme toto pole prázdne, čaká sa iba na stlačenie ľubovoľného klávesu pred pokračovaním. Umiestnením čísel (okrem 0) môžeme určiť oneskorenie, ako dlho necháte okno otvorené (čas v milisekundách tu).
cv2.waitKey ()
'destruAllWindows' zatvorí všetky otvorené okná, ak ich neumiestnite, váš program bude visieť.
cv2.destroyAllWindows ()
, na tento účel použijeme numpy, numpy je knižnica pre programovanie v pythone na pridanie podpory pre veľké multidimenzionálne polia a matice.
import cv2 #importing numpy import numpy ako np image = cv2.imread ('input.jpg') cv2.imshow ('hello_world', obrázok) #shape funkcia je veľmi užitočná, keď sa pozeráme na rozmery poľa, je vráti n-ticu, ktorá dáva rozmer obrázka print (image.shape) cv2.waitKey () cv2.destroyAllWindows ()
výstup na konzolu - (183, 275, 3), Dva rozmery obrázka sú 183 pixelov na výšku a 275 pixelov na šírku a 3 znamená, že tento obrázok vytvárajú ďalšie tri komponenty (R, G, B) (zobrazuje že farebné obrázky sú uložené v trojrozmerných poliach).
print ('Výška obrázka:', (image.shape, 'pixelov')) print ('Šírka obrazu:', (image.shape, 'pixelov')))
výstup na konzolu - výška obrázka: (183, 'pixely')
Šírka obrázka: (275, „pixelov“)
Uloženie upraveného obrázka do OpenCV
Na určenie názvu súboru a obrázka, ktorý sa má uložiť, používame príkaz „imwrite“.
cv2.imwrite ('output.jpg', obrázok) cv2.imwrite ('output.png', obrázok)
Prvý argument je názov súboru, ktorý chceme uložiť, {aby sme si prečítali alebo uložili súbor, ktorý používame ('') na jeho označenie ako reťazec} a druhým argumentom je názov súboru.
OpenCV vám umožňuje uložiť obrázok v rôznych formátoch.
Obrázok sivej mierky v OpenCV
Šedá škála je proces, pri ktorom sa obrázok prevedie z plnej farby na odtiene šedej (čierna a biela)
V OpenCV mnoho funkcií pred spracovaním upravuje obrázky v odtieňoch šedej. Je to tak preto, lebo sa tým zjednodušuje obraz, ktorý funguje takmer ako redukcia šumu a zvyšuje sa čas spracovania, pretože v obraze je menej informácií (pretože obrázky v odtieňoch sivej sa ukladajú do dvojrozmerných polí).
importovať cv2 # načítať náš vstupný obrázok image = cv2.imread ('input.jpg') cv2.imshow ('original', image) cv2.waitKey () #použijeme cvtcolor na prevedenie do šedej škály grey_image = cv2.cvtColor (obrázok, cv2.COLOR_BGR2GRAY) cv2.imshow ('stupne šedej', gray_image) cv2.waitKey () cv2.destroyALLWindows ()
Jednoduchší spôsob, ako previesť obrázok na stupne šedej, je pridať argument 0 vo funkcii imread okrem názvu obrázka
import cv2 grey_image = cv2.imread ('input.jpg', 0) cv2.imshow ('stupne šedej', grey_image) cv2.waitKey () cv2.destroyAllWindows ()
import cv2 import numpy ako 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', gray_image) print (gray_image.shape) cv2.waitKey () cv2.destroyALLWindows ()
Výstup na konzolu: - (183, 275, 3) - pre farebný obrázok
(183, 275) - pre obrázok v odtieňoch sivej
Preto jasne ukazuje, že farebné obrázky sú reprezentované trojrozmernými poliami, zatiaľ čo obrázky v šedej škále dvojrozmernými poľami.
Farebné priestory
Farebné priestory sú spôsobom, akým sú obrázky uložené. RGB, HSV, CMYK sú rôzne farebné priestory, ide iba o jednoduchý spôsob znázornenia farieb.
RGB - červená, zelená a modrá.
HSV - odtieň, sýtosť a hodnota.
A CMYK sa bežne používa v atramentových tlačiarňach.
RGB alebo BGR farebný priestor
Predvolený farebný priestor OpenCV je RGB. RGB je doplnkový farebný model, ktorý generuje farby kombináciou modrej, zelenej a červenej farby rôznej intenzity / jasu. V OpenCV používame 8 bitové farebné hĺbky.
- Červená (0-255)
- Modrá (0-255)
- Zelená (0-255)
OpenCV však v skutočnosti ukladá farby vo formáte BGR.
Zábavný fakt: - V počítačoch používame poradie BGR kvôli tomu, ako sú nepodpísané 32-bitové celé čísla uložené v pamäti, stále sa končí uložením ako RGB. Celé číslo predstavujúce farbu, napr.: - 0X00BBGGRR sa uloží ako 0XRRGGBB.
Farebný priestor HSVHSV (Hue, Saturation & value / Brightness) je farebný priestor, ktorý sa pokúša reprezentovať farby, ktoré ho ľudia vnímajú. Ukladá farebné informácie vo valcovom znázornení farebných bodov RGB.
Odtieň - hodnota farby (0-179)
Sýtosť - Žiarivosť farieb (0-255)
Hodnota - jas alebo intenzita (0-255)
Formát farebného priestoru HSV je užitočný pri segmentácii farieb. V RGB nie je filtrovanie konkrétnej farby ľahké, ale vďaka HSV je oveľa jednoduchšie nastaviť rozsahy farieb na filtrovanie konkrétnej farby tak, ako ich vnímame.
Odtieň predstavuje farbu v HSV, hodnota odtieňa sa pohybuje od 0 - 180 a nie 360, takže nevyplňuje celý kruh, a preto je mapovaná inak ako štandard.
Filtre farebného rozsahu
- Červená - (165-15)
- Zelená - (45-75)
- Modrá - (90 - 120)
Ako vieme, obrázky sa ukladajú do farebného priestoru RGB (červená, zelená a modrá), takže OpenCV nám to ukazuje rovnako, ale prvá vec, ktorú si treba pamätať pri formáte RGB OpenCV, je, že je to vlastne BGR, a môžeme to zistiť pohľadom na tvar obrazu.
import cv2 import numpy ako np image = cv2.imread ('input.jpg') # B, G, R hodnota pre prvých 0,0 pixelov B, G, R = tlač obrázka (B, G, R) tlač (obrázka.shape) # now if we apply this on grayscale image grey_img = cv2.cvtColor (image, cv2.COLOR_BGR2GRAY) print (gray_img.shape) #gray_image hodnota pixelu pre tlač 10,50 pixelov (gray_img)
Výstup z konzoly: tlač (B, G, R) - 6 11 10
tlač (image.shape) - (183, 275, 3)
tlač (gray_img.shape) - (183, 275)
tlač (gray_img) - 69
Teraz sú v obraze šedej stupnice iba dve dimenzie, pretože si pamätáme, že farebný obraz je uložený v troch rozmeroch, pričom tretí rozmer je (R, G, B), zatiaľ čo v stupňoch šedej sú prítomné iba dva rozmery, pretože (R, G, B) chýba a pre konkrétnu pozíciu pixelu dostaneme iba jednu hodnotu, zatiaľ čo na farebnom obrázku máme tri hodnoty.
Ďalším užitočným farebným priestorom je HSV
import cv2 image = cv2.imread ('input.jpg') hsv_image = cv2.cvtColor (image, cv2.COLOR_BGR2HSV) cv2.imshow ('HSV obrázok', hsv_image) cv2.imshow ('Hue kanál', hsv_image) cv2. imshow ('saturačný kanál', hsv_image) cv2.imshow ('hodnotový kanál', hsv_image) cv2.waitKey () cv2.destroyAllWindows ()
Po spustení kódu vidíte štyri obrázky, z ktorých tri sú z jednotlivých kanálov a jeden je kombinovaný obraz HSV.
Obraz kanála odtieňov je dosť tmavý, pretože jeho hodnota sa líši iba od 0 do 180.
Upozorňujeme tiež, že funkcia imshow sa pokúša zobraziť obrázok RGB alebo BGR, ale konverzia HSV ju prekrýva.
Hodnotový kanál bude tiež vďaka svojmu jasu podobný šedému stupňu obrazu.
Skúmanie jednotlivých zložiek obrazu RGB
import cv2 image = cv2.imread ('input.jpg') # split funkcia splitc rozdelí imageinti na každý farebný index B, G, R = cv2.split (image) cv2.imshow ("červená", R) cv2.imshow ("Green", G) cv2.imshow ("blue", B) #making pôvodný obraz zlúčením jednotlivých farebných zložiek zlúčených = cv2.merge () cv2.imshow ("zlúčila", sa spojil) #amplifying modrá farba sa spojil = cv2.merge () cv2.imshow ("zlúčené s modrým zosilnením", zlúčené) #reprezentujúce tvar jednotlivých farebných zložiek. # výstup by mal byť iba dvojrozmerný, čo by bola výška a šírka, pretože tretím prvkom zložky RGB je jednotlivo reprezentovaný print (B.shape) print (R.tvar) tlač (G. tvar) cv2.waitKey (0) cv2.destroyAllWindows ()
Výstup z konzoly: #rozmery obrázka z tvarovej funkcie
(183, 275)
(183, 275)
(183, 275)
Prevod obrazu na jednotlivé komponenty RGB
V nasledujúcom kóde sme vytvorili maticu núl s rozmermi obrázka VxŠ, nula vráti pole plné núl, ale s rovnakými rozmermi.
Tvarová funkcia je veľmi užitočná, keď sa pozeráme na rozmer obrázka, a tu sme vykonali krájanie tejto tvarovej funkcie. Takže tvar by chytil všetko až po určené body, tj až po druhé určené body, ktoré by boli výškou a šírkou obrázka, pretože tretia predstavuje RGB zložku obrázka a tu to nepotrebujeme.
import cv2 import numpy ako np image = cv2.imread ('input.jpg') B, G, R = cv2.split (obrázok) zeros = np.zeros (image.shape, dtype = "uint8") cv2.imshow („ČERVENÁ“, cv2.merge ()) cv2.imshow („Zelená“, cv2.merge ()) cv2.imshow („Modrá“, cv2.merge ()) cv2.waitKey (0) cv2.destroyAllWindows ()
Histogramová reprezentácia obrazu
Histogramové znázornenie obrázka je metóda vizualizácie zložiek obrázkov.
Nasledujúci kód umožňuje analyzovať obraz prostredníctvom farebného histogramu jeho kombinovaných a jednotlivých farebných zložiek.
import cv2 import numpy ako np #potrebujeme import matplotlib na vytvorenie histogramových grafov import matplotlib.pyplot ako plt image = cv2.imread ('input.jpg') histogram = cv2.calcHist (,, None,,) #we plot a histogram, ravel () splošťuje naše obrazové pole plt.hist (image.ravel (), 256,) plt.show ( ) #viewing seperate color channels color = ('b', 'g', 'r') # vieme oddeľte farbu a vykreslite každý v histograme pre i, col v enumerate (color): histogram2 = cv2.calcHist (,, None,,) plt.plot (histogram2, color = col) plt.xlim () plt.show ()
Poďme pochopiť funkciu calcHist s každým z jej jednotlivých parametrov
cv2.calcHist (obrázky, kanály, maska, histsize , rozsahy)
Obrázky: je to zdrojový obrázok typu uint 8 alebo float 32. Mal by byť uvedený v hranatých zátvorkách, tj. „“, Ktoré tiež označujú jeho pole druhej úrovne, pretože obraz pre opencv sú dáta vo forme poľa.
Kanály: je uvedený aj v hranatých zátvorkách. Je to index kanála, pre ktorý kalkulujeme histogram, napríklad ak je vstupom obraz v stupňoch šedej, jeho hodnota je, pre farebné obrázky, ktoré môžete prejsť, alebo pre výpočet histogramu modrého, zeleného a červeného kanálu.
Maska: obrázok masky. aby sme našli histogram úplného obrazu, je uvedený ako „žiadny“. ale ak chcete nájsť histogram konkrétnej oblasti obrazu, musíte pre to vytvoriť obrázok masky a dať ho ako masku.
Histsize: Toto predstavuje náš počet BIN. Je potrebné uviesť v hranatých zátvorkách, aby sme prešli celú mierku.
Rozsahy: Toto je obvykle náš rozsah
Kreslenie obrázkov a tvarov pomocou OpenCV
Ďalej uvádzame niekoľko príkladov na kreslenie čiar, obdĺžnika, mnohouholníka, kruhu atď. V OpenCV.
import cv2 import numpy ako np #vytvorenie čierneho štvorca obrázok = np.zeros ((512 512,3), np.uint8) # môžeme to vytvoriť aj čiernobielo, nemalo by to však nijaké zmeny image_bw = np.zeros ((512 512), np.uint8) cv2.imshow ("čierny obdĺžnik (farebný)", obrázok) cv2.imshow ("čierny obdĺžnik (čiernobiely)", image_bw)
Riadok
# vytvorte čiaru cez čierny štvorec # cv2.line (obrázok, počiatočné súradnice, koncové súradnice, farba, hrúbka) # nakreslenie diagonálnej čiary s hrúbkou 5 pixelov obrázok = np.zeros ((512 512,3), np.uint8) cv2.line (obrázok, (0,0), (511 511), (255 127,0), 5) cv2.imshow („modrá čiara“, obrázok)
Obdĺžnik
#vytvorte obdĺžnik nad čiernym štvorcom # cv2.rectangle (obrázok, počiatočné súradnice, koncové súradnice, farba, hrúbka) # nakreslenie obdĺžnika s hrúbkou 5 pixelov obrázok = np.zeros ((512 512,3), np.uint8) cv2.rectangle (image, (30,50), (100,150), (255,127,0), 5) cv2.imshow ("obdĺžnik", obrázok)
Kruh#vytvorenie kruhu cez čierny štvorec # cv2.circle (obrázok, stred, polomer, farba, výplň) obrázok = np.zeros ((512 512,3), np.uint8) cv2.circle (obrázok, (100 100), (50), (255 127,0), - 1) cv2.imshow ("kruh", obrázok)
Polygón#creating a polygon image = np.zeros ((512,512,3), np.uint8) #lets definovať štyri body pts = np.array (,,,], np.int32) #lets teraz tvarujú naše body v podobe požadovanej lomené čiary pts = pts.reshape ((- 1,1,2)) cv2.polylines (obrázok,, True, (0,255,255), 3) cv2.imshow ("mnohouholník", obrázok)
Text#putting text using opencv # cv2.putText (obrázok, 'text na zobrazenie', štartovací bod vľavo vľavo, písmo, veľkosť písma, farba, hrúbka) image = np.zeros ((512 512,3), np.uint8) cv2. putText (obrázok, "hello world", (75 290), cv2.FONT_HERSHEY_COMPLEX, 2, (100 170,0), 3) cv2.imshow ("hello world", obrázok) cv2.waitKey (0) cv2.destroyAllWindows ()
Počítačové videnie a OpenCV sú veľmi rozsiahle témy, ale táto príručka by bola dobrým východiskovým bodom na naučenie sa OpenCV a spracovania obrázkov.