Использование cvQueryFrame и boost :: thread вместе
Мне нужно позвонитьcvQueryFrame
(для захвата кадра с веб-камеры с opencv) вместо этого поток, созданный с помощью boost. Вот небольшой пример кода:
void testCVfunc(){
IplImage* frame;
CvCapture *capture;
capture = cvCreateCameraCapture(CV_CAP_ANY);
if(!capture){
exit(1);
}
frame = cvQueryFrame(capture);
cvNamedWindow("testCV", 1);
while(frame = cvQueryFrame(capture)){
if(!frame){
exit(2);
}
cvShowImage("testCV", frame);
cvWaitKey(1);
}
cvReleaseImage(&frame);
cvReleaseCapture(&capture);
}
int main(){
//Method 1: without boost::thread, works fine
testCVfunc();
//Method 2: with boost::thread, show black screen
char entree;
boost::thread threadTestCV = boost::thread(&testCVfunc);
std::cin >> entree;
}
Как говорится в комментариях,testCVfunc
делает свою работу, если я не позвоню сboost::thread
, но я получаю черный экран, если я используюboost::thread
, Я не понимаю проблемы, может, кто-то понимает?
Спасибо за помощь.