0

我已经通过火线连接了一个凸轮,并尝试使用 opencv 访问它。在香菜中检测到相机并能够获取视频流。下面是我使用的代码

    #include "/home/iiith/opencv-2.4.9/include/opencv/cv.h"
    #include "/home/iiith/opencv-2.4.9/include/opencv/highgui.h"
    #include "cxcore.h"
    #include <iostream>

    using namespace cv;
    using namespace std;

    int main(int,char**)
    {
        VideoCapture cap(0);
        if(!cap.isOpened())
            cout<<"Camera not detected"<<endl;
        while(1)
        {
            Mat frame;
            namedWindow("display",1);
            cap >> frame;
            imshow("display",frame);
            waitKey(0); 
        }
    }

当我运行此代码时,视频是从网络摄像头而不是我的火线摄像头流式传输的。我在朋友的系统中尝试了相同的代码,并在那里检测到了火线摄像头。我使用不同的命令(例如testlibrawlsmod )测试了设置,它们都是相同的。甚至Opencv版本,2.4.9,Ubuntu 12.04都是一样的。这真的很奇怪,我在这里待了 2 天。谁能告诉我可能有什么不同?如何在opencv中检测到外部凸轮?提前致谢。

注意:这是否与设置默认凸轮有关?谢谢。

更新 1:VideoCapture cap(1) 给出以下错误 HIGHGUI ERROR: V4L: index 1 is not correct!

这是否意味着无法识别相机?

4

2 回答 2

1

首先,您应该确保您的相机可以识别您的相机

  • 拔下相机并等待几秒钟;
  • 打开终端和数字:
    • 看dmesg
    • lspci | grep -E -i "(1394|firewire)" #这可以给你一些东西
  • 插入您的设备并在终端上阅读新条目
  • 如果您的设备被识别,您可以启动如下命令:
    • mplayer tv:// -tv driver=v4l2:width=352:height=288
于 2014-09-30T07:03:05.530 回答
0

可能的问题是系统无法识别通过火线连接的相机。

首先尝试使用 AMcap 或其他一些网络摄像头软件查看摄像头输出,并检查您是否能够看到这一点。

如果您无法在 amcap 中看到视频,则意味着该特定相机的驱动程序丢失。

于 2014-09-30T06:30:04.633 回答