c++ camera - Seleziona Errore timeout in Ubuntu-Opencv





webcam python (4)


Può essere risolto se aggiungiamo le seguenti righe al codice:

VideoCapture capture(<device id>);
capture.set(CV_CAP_PROP_FRAME_WIDTH , 352);
capture.set(CV_CAP_PROP_FRAME_HEIGHT , 288);

Di seguito è riportato un link valido in cui la soluzione è spiegata in dettaglio: http://derekmolloy.ie/beaglebone/beaglebone-video-capture-and-image-processing-on-embedded-linux-using-opencv/

Sto cercando di impostare OpenCv per il mio progetto per l'ultimo anno e ho incontrato un paio di problemi. Ho ottenuto con successo configurato in Ubuntu seguendo questo tutorial.

Il problema che sto avendo ora è mantenere in esecuzione questo programma di esempio . Il programma è il rilevamento del volto utilizzando una webcam.

Funziona bene per 3 o 4 secondi e quindi l'acquisizione rimane bloccata con un singolo fotogramma nella finestra. La console visualizza il seguente output.

[email protected]:~/College/opencv/faceDetect_sample$ make
./faceDetect --cascade="haarcascade_frontalface_alt.xml" --nested-cascade="haarcascade_eye_tree_eyeglasses.xml"
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
init done 
opengl support available 
select timeout
select timeout
select timeout
select timeout
select timeout
select timeout
^Cmake: *** [run] Interrupt

Se qualcuno ha un'idea di dove andare da qui, mi piacerebbe davvero un aiuto!




Prova questo:

modprobe uvcvideo nodrop=1 timeout=6000

e se funziona, basta rendere permanenti le modifiche modificando /etc/modprobe.d/modprobe.conf

Prova ad aumentare il timeout a un numero ridicolmente grande. Questo dovrebbe risolvere il problema, o almeno ha funzionato per me. È solo che la chiamata a selezionare non restituisce descrittori pronti, e ciò potrebbe essere causato dal driver video o dal dispositivo uno.

Se ciò non funziona,

Abilita tracce del modulo:

sudo echo 0xffff > /sys/module/uvcvideo/parameters/trace

Esegui il programma finché non viene rilevato l'errore e interrompilo il prima possibile. Quindi disabilitare le tracce:

sudo echo 0 > /sys/module/uvcvideo/parameters/trace

Cerca con dmesg per i messaggi di errore.




Ho avuto lo stesso problema con il mio Logitech C920. Ho provato le seguenti soluzioni senza alcun successo. Tuttavia, ha funzionato come un fascino con la webcam C930e, quindi suppongo che l'API V4L abbia qualcosa a che fare con esso.




Relativo alle statistiche di utilizzo: budgeting per sottosistema. Ad esempio, in un gioco basato su console, potresti voler riservare una parte della memoria per la geometria del modello 3D, alcuni per le trame, alcuni per i suoni, alcuni per gli script di gioco, ecc. Gli allocatori personalizzati possono etichettare ogni allocazione per sottosistema ed emettere un avviso quando vengono superati i budget individuali.





c++ c ubuntu opencv webcam