C'est une histoire très rudimentaire ... Probablement la bonne façon de faire une caméra de surveillance avec Raspberry Pi et un véritable module caméra, pas avec une caméra USB, mais avec une caméra dédiée pour la version Raspeye jessie (motion + pilote v4l2)](https: // qiita. Comme expliqué dans com / rukihena / items / 95da3860f9ca86c39f8d), si vous chargez le module noyau bcm2835-v4l2.ko
, vous devriez pouvoir le faire par la procédure suivante, mais je n'ai pas la caméra réelle pour Raspeye, donc je l'ai confirmé. ne pas.
sudo apt-get install usbutils python3-opencv libcanberra-gtk3-module v4l-utils qv4l2
video
, utilisez donc sudo adduser login name video
.qv4l2
pour voir si vous pouvez voir l'image de la caméra.v4l2-ctl --list-formats-ext
.Assurez-vous que la sortie de lsusb -t
a Class = Video, Driver = uvcvideo
pi@raspberrypi:~ $ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
Si vous exécutez le programme suivant en tant que python3 capture.py
, l'image de la caméra sera affichée. Si vous utilisez Ubuntu Mate tarte aux framboises, vous ne pouvez pas accéder à / dev / video0, veuillez donc faire sudo chmod a + rw / dev / video0
.
capture.py
import cv2
capture = cv2.VideoCapture(0)
if capture.isOpened() is False:
raise IOError
while(True):
try:
ret, frame = capture.read()
if ret is False:
raise IOError
cv2.imshow('frame',frame)
cv2.waitKey(1)
except KeyboardInterrupt:
#CTRL une fois terminé+Appuyez sur C
break
capture.release()
cv2.destroyAllWindows()
Recommended Posts