如何访问OpenCV中UDEV与UDEV相关的网络摄像头
how to access a webcam that was symlinked by udev in opencv
我正在开发一个需要多个网络摄像头的应用程序。为了确保正确的网络摄像头用于应用程序的每个部分,我创建了一些UDEV规则,这些规则将网络摄像头链接到特定名称,具体取决于序列号。
这很好,我可以使用VLC和其他各种应用程序访问该名称。
但是,当我尝试使用OpenCV和Python访问该名称(或Linux给出的非共线名称)时,我无法从相机中读取帧,并且程序挂起。相机已成功打开。我已经在C 中创建了一个示例应用程序,以测试它是否可能是Python/OpenCV相关的错误,但是在C 中也发生了同样的事情。
这是我的C 测试应用程序,它不起作用:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main (int argc, const char * argv[])
{
VideoCapture cap("/dev/my_custom_name");
if (!cap.isOpened())
return -1;
cout << "Opened..." << endl;
Mat img;
namedWindow("video capture", CV_WINDOW_AUTOSIZE);
while (true)
{
cout << "Trying..." << endl;
cap >> img;
cout << "Got" << endl;
imshow("video capture", img);
if (waitKey(10) >= 0)
break;
}
return 0;
}
我收到Opened...
和Trying...
消息,但没有Got
消息。
关于如何解决此问题的任何想法?
(这全都在Linux BTW上)。
谢谢
我弄清楚了。当我在VLC中打开捕获量时,我注意到它使用v4l2://
将文件名固定。当我在应用程序中做同样的事情时,它奏效了!
因此,在上面的参考文献中,"/dev/my_custom_name"
应成为"v4l2:///dev/my_custom_name"
。
相关文章:
- OpenCV 4.1.2 - 从网络摄像头获取帧并将其拆分
- 使用OpenCV和覆盆子上的多个网络摄像头拍摄延时摄影,出现多个V4L错误
- 使用源读取器从网络摄像头源获取 H264 样本
- 为什么我不能让 3 个网络摄像头与 pthreads 并行运行?
- 从 OpenCV 3 切换到 OpenCV 4 会导致网络摄像头以最大 5 fps 的速度录制,而不是通常的 30 f
- 如何使用realsense摄像头调试ROS错误消息
- Qt小部件中的摄像头访问
- 媒体基金会可以允许多个客户端同时访问单个网络摄像头设备吗?
- 从C++调用网络摄像头并在 Python 中显示图像
- 从 WinPE 下的网络摄像头捕获?
- UE4-使用摄像头时,观众不会旋转(俯仰)
- OpenCV没有显示来自Macbook网络摄像头的视频
- 使用OpenCV和C++在按键上截取网络摄像头源的屏幕截图
- 什么相当于英特尔实感 3D 摄像头 (SR300) 的 pmdGet3DCoordinates?
- 我正在尝试在树莓派中连接两个网络摄像头
- 使用OpenCV访问摄像头(通过GSTREAMER)
- 弧球摄像头:如何获得正确的方向和向上
- AVG防病毒残疾摄像头
- 3D透视图投影,带有摄像头旋转
- 如何访问OpenCV中UDEV与UDEV相关的网络摄像头