У меня проблема здесь, и мне нужна ваша помощь.Я пытался захватить удары клавиатуры с помощью функции cvWaitKey ().cvWaitKey (10) должен возвращать нажатие клавиши каждые 10 мс.Но в моем случае я получаю каждые 18 секунд все клавиши, которые я нажимал в течение этого периода в 18 секунд, сразу.И окно, которое обычно должно закрываться при нажатии клавиши «esc» (см. Код), все еще открыто.
В консоли я получаю следующее:
VIDIOC_QUERYMENU: Неверный аргумент
VIDIOC_QUERYMENU: Неверноаргумент
VIDIOC_QUERYMENU: неверный аргумент
-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-11536870939-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-111536870939-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1
С:
1536870939 соответствует тому, когда я нажал 'esc
-1 соответствует тому, когда ни одна клавиша не была нажата
Спасибо за помощь.
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include "iostream"
using namespace std;
int main()
{
IplImage *src=cvCreateImage(cvSize(640,480), 8, 3);
CvCapture* capture =cvCaptureFromCAM(CV_CAP_ANY);
int key;
while(1){
src = cvRetrieveFrame( capture );
cvNamedWindow( "out", CV_WINDOW_AUTOSIZE );
cvShowImage( "out", src );
key = cvWaitKey(10);
cout<<key;
if( key == 1536870939 ) break; //if 'esc' is pressed (in ubuntu 10.04)
cvGrabFrame( capture );
}
cvDestroyAllWindows();
cvReleaseCapture( &capture );
return 0;
}
Я использую: Opencv 2.2.0, Ubuntu 10.04 LTS, CodeBlocks8,02