Najskôr si nainštalujeme OpenCV:
pip3 nainštalujte opencv-pythonČítanie a zobrazovanie obrázkov
Prvá vec, ktorú sa musíme naučiť, je čítať a písať obrázky. Čítanie obrazového súboru, zadanie úplnej cesty k súboru alebo názvu súboru (ak je súbor v priečinku python) a pridanie príznaku sa vykonáva pomocou cv2.imread (). Vlajka môže mať hodnotu 1 (pre farebný obrázok), 0 (pre stupnice šedej) alebo -1 (pre farebný obrázok s kanálmi). Jeden môže použiť cv2.funkcia imshow () na zobrazenie obrázka; tu sa odovzdajú dva argumenty - názov obrázka a obrázok, ktorý sa má zobraziť. Ďalej použijeme cv2.funkcia waitKey () na čakanie na vstup z klávesnice; a 0 pre cv2.Funkcia waitKey (0) znamená trvalé čakanie. Na druhej strane cv2.funkcia destruAllWindows () zavrie okná.
Toto načíta a otvorí obrázok a obrázok ponechá otvorený, kým ho nezatvoríte:
importovať cv2obrázok = cv2.imread ('LinuxLogo.jpg ', 1)
cv2.imshow ('obrázok', obrázok)
cv2.waitKey (0)
cv2.destruAllWindows ()
Napíšte obrázky
Používame cv2.funkcia imwrite () na uloženie obrázka. Táto funkcia má dva parametre - názov na uloženie obrázka a obrázok, ktorý chcete uložiť.
importovať cv2obrázok = cv2.imread ('identifikovať.jpg ', -1)
cv2.imwrite ('save_image.png ', obrázok)
Zachyťte video z webovej kamery
Pri zaznamenávaní videí začneme inicializáciou cv2.Funkcia VideoCapture (). Potom pokračujeme v snímaní pomocou slučky „while“. Aj keď užívateľ nestlačí kláves exit, môžeme načítať snímky a zobrazovať ich pomocou read () a cv2.funkcia imshow (). Potom sme vložili kláves „break“, aby sme ukončili slučku; v takom prípade je číslo 27 kľúčom ESC. Ak užívateľ stlačí kláves ESC, vymaní sa zo slučky. Akonáhle ste mimo slučky, je potrebné uvoľniť zachytenie.
importovať numpy ako npimportovať cv2
zachytenie = cv2.VideoCapture (0)
while (True):
ret, rám = zachytiť.čítať()
cv2.imshow ('rám', rám)
ak cv2.waitKey (1) & 0xFF == 27:
prestávka
zajať.uvoľniť ()
cv2.destruAllWindows ()
Prehrávanie video súboru
Prehrávanie videosúboru je ako zachytenie videa z webovej kamery. K tomu cv2.Je použitá funkcia VideoCapture (); k funkcii sa potom pridá názov videosúboru, ktorý chcete prehrať. Opäť sa použije slučka „while“ a klávesom ukončenia sa v tomto prípade zobrazí kláves „s“ na klávesnici. Toto otvorí a prehrá video súbor a zatvorí ho, keď používateľ stlačí kláves „s“.
importovať numpy ako npimportovať cv2
zachytenie = cv2.VideoCapture („Megamind.avi ")
while (True):
ret, rám = zachytiť.čítať()
cv2.imshow ('rám', rám)
ak cv2.waitKey (1) & 0xFF == ord ("s"):
prestávka
zajať.uvoľniť ()
cv2.destruAllWindows ()
Uloženie video súboru
Uloženie video súboru vyžaduje trochu viac práce. CV2.Funkcia VideoWriter () má celkovo 4 parametre - názov výstupného súboru, kód FourCC, počet snímok za sekundu a veľkosť rámca. Ďalej je potrebné určiť FourCC kód, ktorý je videokodekom využívajúcim cv2.Funkcia VideoWriter_fourcc (). Pomocou snímania.isOpened (), načítame rámec a zapíšeme výstupný rámec. Rámečky môžeme zobraziť aj pomocou cv2.funkcia imshow (). Potom použijeme cv2.waitKey (1) & 0xFF == ord ('s') na nastavenie klávesu ukončenia. V takom prípade, ak užívateľ stlačí klávesu „s“, opustí slučku a potom uvoľní snímanie a výstup a zatvorí okná.
importovať numpy ako npimportovať cv2
zachytenie = cv2.VideoCapture (0)
fourcc = cv2.VideoWriter_fourcc (* „XVID“)
výstup = cv2.VideoWriter ('výstup.avi ', fourcc, 30.0, (640 480))
zatiaľ čo (zachytiť.isOpened ()):
ret, rám = zachytiť.čítať()
výkon.zápis (rám)
cv2.imshow ('rám', rám)
ak cv2.waitKey (1) & 0xFF == ord ('s'):
prestávka
zajať.uvoľniť ()
výkon.uvoľniť ()
cv2.destruAllWindows ()
Kreslenie čiar, kruhov, obdĺžnikov a textov
Prvá vec, ktorú sa naučíme kresliť, je čiara. Na nakreslenie čiary jednoducho použijeme cv2.funkcia line (). Funkcia má 5 argumentov - zdrojové video, počiatočný bod, konečný bod, farbu a hrúbku čiary. V nasledujúcom prípade sme sa rozhodli nakresliť obdĺžnikový okraj (zložený zo 4 riadkov):
importovať cv2zachytenie = cv2.VideoCapture ('vtest.avi ')
zatiaľ čo je pravda:
ret, rám = zachytiť.čítať()
šírka = int (zachytiť.dostať (3))
výška = int (zachytiť.dostať (4))
riadok1 = cv2.riadok (rám, (0,0), (0, výška), (255, 255, 255), 10)
line2 = cv2.riadok (riadok1, (0, 0), (šírka, 0), (255, 255, 255), 10)
riadok3 = cv2.riadok (riadok2, (0, výška), (šírka, výška), (255, 255, 255), 10)
riadok4 = cv2.riadok (riadok3, (šírka, 0), (šírka, výška), (255, 255, 255), 10)
cv2.imshow ('frame', line4)
ak cv2.waitKey (40) == ord ('q'):
prestávka
zajať.uvoľniť ()
cv2.destruAllWindows ()
Ďalej do videa nakreslíme kruh aj obdĺžnik. Na nakreslenie obdĺžnika použijeme cv2.obdĺžnik () funkcia, ktorá trvá 5 argumentov podobne ako riadok. Na nakreslenie kruhu použijeme funkciu cv2.circle (), ktorý tiež vyžaduje 5 argumentov - zdrojové video, stredový bod, polomer, farbu a hrúbku.
importovať cv2zachytenie = cv2.VideoCapture ('vtest.avi ')
zatiaľ čo je pravda:
ret, rám = zachytiť.čítať()
šírka = int (zachytiť.dostať (3))
výška = int (zachytiť.dostať (4))
obdĺžnik = cv2.obdĺžnik (rám, (150, 15), (650, 550), (0,0,0), 11)
cv2.kruh (obdĺžnik, (250, 250), 60, (0,0,0), 11)
cv2.imshow ('rám', rám)
ak cv2.waitKey (40) == ord ('q'):
prestávka
zajať.uvoľniť ()
cv2.destruAllWindows ()
Teraz pridajme k videu, ktoré máme, nejaký text. Aby sme to dosiahli, musíme určiť písmo; tu sme vybrali cv2.FONT_HERSHEY_SIMPLEX. Po výbere písma môžeme používať funkciu cv2.putText (), aby urobil zvyšok. Cv2.putText () má 8 argumentov - zdrojové video, text, ktorý chcete napísať, miesto, kam ho chcete mať, písmo, zväčšenie, farba, hrúbka a CV2.LINE_AA (vďaka čomu bude všetko vyzerať lepšie).
importovať cv2zachytenie = cv2.VideoCapture ('vtest.avi ')
zatiaľ čo je pravda:
ret, rám = zachytiť.čítať()
šírka = int (zachytiť.dostať (3))
výška = int (zachytiť.dostať (4))
font = cv2.FONT_HERSHEY_SIMPLEX
obrázok = cv2.putText (rám, "VTEST.AVI ", (200, 200), písmo, 4, (0,0,0), 5, cv2.LINE_AA)
cv2.imshow ('rám', obrázok)
ak cv2.waitKey (40) == ord ('q'):
prestávka
zajať.uvoľniť ()
cv2.destruAllWindows ()
OpenCV je schopný mnohých skvelých vecí, kde človek musí niekde začať. Mohlo by sa učiť vytvárať a ukladať obrázky a videá. V tomto tutoriáli sme sa naučili robiť úplne základy počítačového videnia.
Šťastné kódovanie!