我有两个线程和两个线程:一个在我的GUI中显示摄像头帧,一个在同一个摄像头上录制视频。 我在每个班级中使用不同的cv::VideoCapture
来访问我的摄像头。我的MainWindow和Recorder类的两个构造器都有theWebcam.open(INDEX)
行来打开摄像头。我的问题是,当程序尝试打开第二个cv::VideoCapture
对象时,大约50%的时间开始崩溃。我如何在两个班级中使用相同的摄像头?cv :: VideoCapture:从两个线程访问相同的摄像头
-2
A
回答
0
据我所知这是不可能的(但从来没有自己试过)。我更喜欢以下方法:
一个线程与摄像机“通信”,即抓取图像,并将一个副本发送到线程写入文件,并将一个副本发送到GUI以显示实时图像。此外,只要相机不支持多播(假设它是一台ip-camera),帧速率很可能会下降。
1
我已经用罗伯特所描述的技术取得了成功。我使用指针将图像传递到不同的线程,并让主线程创建我需要的所有VideoCapture对象以及namedWindow对象。我现在说的是我的专业领域之外,但我的经验表明,除了主线程之外,不能在任何线程中创建来自OpenCV的VideoCapture和namedWindow对象,而必须转到辅助线程中。
相关问题
- 1. 如何通过打开的cv从IP摄像头访问无线摄像头?
- 2. getUserMedia - 无法同时从两个浏览器访问摄像头
- 3. 从uiwebview访问摄像头?
- 4. 从JavaFx访问摄像头
- 5. 访问摄像头
- 6. iPhone:从Web应用程序访问摄像头和相册
- 7. 从pyside/opencv访问摄像头
- 8. 如何同时访问双摄像头?
- 9. 水豚从两个线程访问相同的会话
- 10. 多个按钮的访问摄像头
- 11. 摄像头相关问题
- 12. HTML5 - 访问摄像头
- 13. IPhone SDK:摄像头访问?
- 14. 访问摄像头失败
- 15. HTML5:摄像头访问
- 16. 如何从Webview中访问摄像头?
- 17. iPhone两个摄像头同时
- 18. Opencv两个摄像头源
- 19. EMGU CV摄像头捕获WPF?
- 20. 管理摄像头 - 无法访问摄像头
- 21. 作为网络摄像头访问手机摄像头C++
- 22. 未定义的参考`CV :: VideoCapture :: VideoCapture(INT)
- 23. 抓取新摄像头图像时的OpenCV VideoCapture/V4L2延迟
- 24. 访问iPhone的摄像头,在一个应用程序
- 25. 如何访问MacBook上的摄像头?
- 26. Python:没有OpenCV的访问摄像头
- 27. 访问摄像头的Windows Phone 10
- 28. 无法从iMessage应用程序访问摄像头
- 29. 同时使用两个线程访问两个同步块
- 30. 通过iPhone Web App访问摄像头
我正在使用USB网络摄像机。我不明白为什么它不可能。如果我将Detector注释掉并让MainWindow显示来自网络摄像头的视频源,我可以运行该程序的10个实例,并且它们都将显示来自同一个摄像头的相同视频,而不会有任何问题。如果显然可以多次访问网络摄像机,为什么不能在同一个程序中使用同一个网络摄像头两次? – testus 2014-11-14 16:22:16
取决于OpenCV如何照顾相机手柄。我知道其他库在内部存储句柄列表并仅保留每个句柄的“实例”,因此当从不同线程访问时会导致问题/访问冲突等。但我认为你应该考虑我的建议,只使用一个摄像头连接并分发所拍摄图像的副本...... – Robert 2014-11-14 16:26:23