繁体   English   中英

OpenCV无法识别网络摄像头,但mplayer成功

[英]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 ,但无济于事。 我还尝试了13 ,如另一个用户建议的那样。

我可以使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM