我正在编写一个使用OpenCV获取两个摄像头捕获的程序(不是用于立体视觉)。使用标准的OpenCV函数
或者,如果我将每个摄像头在它们自己的POSIX线程中运行(因此具有相同的地址空间),第二个线程会导致段错误,而我无法找出原因。
最后,我可以使每个摄像头在其自己的进程中运行(因此具有单独的地址空间),一切都正常运行。我的猜测是,在从不同的摄像头查询每个帧之前,必须获取某种锁定类型的资源。希望有人能提供一些想法,以便在相同的进程和线程中同时获取两个捕获。谢谢!
cvCaptureFromCAM()
从两个相同的摄像头中获取捕获,以及通过在while循环中调用cvQueryFrame()
两次(每次捕获一次)来获取捕获。显示在cvNamedWindow
中时,两个摄像头都会得到垃圾图像。或者,如果我将每个摄像头在它们自己的POSIX线程中运行(因此具有相同的地址空间),第二个线程会导致段错误,而我无法找出原因。
最后,我可以使每个摄像头在其自己的进程中运行(因此具有单独的地址空间),一切都正常运行。我的猜测是,在从不同的摄像头查询每个帧之前,必须获取某种锁定类型的资源。希望有人能提供一些想法,以便在相同的进程和线程中同时获取两个捕获。谢谢!