所以我知道以下链接:Problem access camera when using Boost thread on OSX
但我的问题是,在 boost 线程中使用 openCV 时,我无法显示窗口。IE:
int main(int argc, char* argv[]) {
CvCapture* cvInputObj = cvCaptureFromCAM((CV_CAP_ANY)); //OSX
assert( cvInputObj != NULL ); //term on fail here
cVision vision(cvInputObj); //Define cVision thread obj
boost::thread cVision_thd(boost::bind(&cVision::Run, &vision));
cVision_thd.join();
std::cout<<"System Going Down..."<<std::endl;
}
在 cVision 中,我做了一堆 openCv 调用,例如 for ex:
cvNamedWindow("MONITOR", CV_WINDOW_AUTOSIZE);
cvShowImage("MONITOR", imCur);
etcetc,其中 imCur 被提取出来:
imCur = cvQueryFrame(input);
这个确切的代码在 Linux 中完美运行。我最初使用自定义 makefile 尝试过这个。那没有用。在此之后,我尝试使用 CMAKE。结果还是一样。并且在linux中仍然可以正常工作。我使用自制软件安装了 openCV。