[英]OpenCV fails to recognize webcam, but mplayer succeeds
作为较大项目的第一步,我试图使用OpenCV从我的摄像头显示图像:
#include <stdlib.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int
main()
{
cv::VideoCapture cap(-1);
if (!cap.isOpened())
exit(EXIT_FAILURE);
cv::Mat frame;
bool done = false;
while (!done) {
cap >> frame;
cv::imshow("webcam", frame);
done = (cv::waitKey(30) >= 0);
}
return EXIT_SUCCESS;
}
这将返回错误代码( !cap.isOpened()
通过,已通过gdb确认)。 最初我有0
而不是-1
。 在搜索该站点时,建议使用-1
,但无济于事。 我还尝试了1
到3
,如另一个用户建议的那样。
我可以使用mplayer(更具体地说是mplayer tv:// -tv driver=v4l2
显示我的网络摄像头。
v4l2
是“ Linux视频”驱动程序。 我注意到OpenCV可以通过使用-DWITH_V4L
和-DWITH_LIBV4L
(在Gentoo中为v4l
USE标志)进行编译来安装。 用它重新编译OpenCV后,它成功识别了网络摄像头。 似乎需要GTK支持才能显示图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.