Kaamera kasutamine

Eesmärk
Selles peatükis õpime, kuidas kasutada veebikaamerat. See on vajalik, et tulevikus reaalajas videole rakendada OpenCV's saadaval olevaid funktsioone.
Kaamera kasutamine
import cv2
# Alusta videovoogu
kaamera = cv2.VideoCapture(0) # 0 on tavaliselt vaikimisi kaamera
# Kontrolli, kas kaamera on korrektselt avatud
if not kaamera.isOpened():
print("Ei suuda kaamerat avada")
exit()
while True:
# Loe kaamerast uus pilt
töötab, kaader = kaamera.read()
# Kui pildi lugemine ebaõnnestub, lõpeta
if not töötab:
print("Ei suuda kaamerast pilti lugeda")
break
# Näita pilti aknas
cv2.imshow('Kaameravoog', kaader)
# Vajuta 'q', et väljuda tsüklist
if cv2.waitKey(1) == ord('q'):
break
# Vabasta kaamera ja sulge kõik aknad
kaamera.release()
cv2.destroyAllWindows()
Programmi töö lõpetamiseks on loodud if-lause, millega saab tsükli lõpetada. Hetkel oleme selleks määranud "q" tähe vajutuse.
Salvestamine
Piltide salvestamisel nagu õppisime, siis saab kasutada cv.imwrite() funktsiooni. Videote salvestamine on natukene keerukam. Video salvestamiseks kasutame VideoWriter funktsiooni.
import cv2 as cv
cap = cv.VideoCapture(0)
fourcc = cv.VideoWriter_fourcc(*'XVID')
out = cv.VideoWriter('salvestus.avi', fourcc, 20.0, (640, 480))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
print("Ei tuvasta järgmist kaadrit. Kaamera sulgub...")
break
cv.imshow('kaamera salvestab', frame)
# Ootame kuni kasutaja vajutab 'q' tähte, tsükkel katsestatakse
if cv.waitKey(1) == ord('q'):
break
cap.release()
out.release()
cv.destroyAllWindows()
Ülesanne: Loo iseseisvalt programm, mis salvestab kaamera videot.