Cerco di ottenere immagini dalla webcam con opencv e python. Il codice è così semplice come:BeagleBone Black OpenCV Python è troppo lento
import cv2
import time
cap=cv2.VideoCapture(0)
cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,640)
cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT,480)
cap.set(cv2.cv.CV_CAP_PROP_FPS, 20)
a=30
t=time.time()
while (a>0):
now=time.time()
print now-t
t=now
ret,frame=cap.read()
#Some processes
print a,ret
print frame.shape
a=a-1
k=cv2.waitKey(20)
if k==27:
break
cv2.destroyAllWindows()
Ma funziona lentamente. output del programma:
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
HIGHGUI ERROR: V4L: Property <unknown property string>(5) not supported by device
8.82148742676e-06
select timeout
30 True
(480, 640, 3)
2.10035800934
select timeout
29 True
(480, 640, 3)
2.06729602814
select timeout
28 True
(480, 640, 3)
2.07144904137
select timeout
Configurazione:
- BeagleBone nero RevC
- Debian-wheezly
- OpenCV 2.4
- pitone 2,7
Per questo problema probabilmente non aiuterà, ma se si sta utilizzando OpenCV effettivamente fare cose cv, probabilmente avrete bisogno di verificare che l'OpenCV si sta utilizzando è compilato contro le estensioni al neon. (facendo google opencv beaglebone neon troverà probabilmente dettagli utili, ad esempio http://blog.lemoneerlabs.com/3rdParty/Darling_BBB_30fps_DRAFT.html) – Foon
"opencv 2.4" - devi essere più specifico, c'è stato un numero di 2.4 .x rilasci di OpenCV nel corso di diversi anni. –