【问题标题】:Capture from firewire camera (with CMU1394 driver) using OpenCV使用 OpenCV 从火线相机(使用 CMU1394 驱动程序)捕获
【发布时间】:2016-03-14 22:42:50
【问题描述】:

我正在尝试在 Win 7(64 位)上使用 OpenCV (C++) 从 DCAM1394 相机获取视频。我试过 VideoCapture,但它似乎只适用于网络摄像头而不是火线摄像头。然后我找到了a thread;按照它的想法,我为我的火线相机安装了CMU1394驱动,并尝试重新编译opencv。

以下是我的做法:

STEP1: 运行1394camera646.exe文件安装CMU1394驱动,然后运行发布者提供的demo;效果很好,我认为证明驱动已经安装成功了。

STEP2:然后我打开文件“{你提取opencv的地方}...\sources\modules\highgui\src\cap_cmu.cpp”(as shown in the Fig),并添加“# def HAVE_CMU1394 1”就在“#ifdef HAVE_CMU1394”之前,希望让“#ifdef HAVE_CMU1394”之后的代码被编译。

STEP3:修改“cap_cmu.cpp”后,我使用Cmake从源代码配置生成文件,并编译输出使用 VS2013 Express。这里弹出一个错误:“无法打开包含文件“1394camera.h””。

通常情况下,文件“1394camera.h”默认不会在OpenCV中预编译;由于在“#ifdef HAVE_CMU1394”之前添加“#def HAVE_CMU1394 1”而弹出错误(这正是我想要做的)。 OpenCV源码没有"1394camera.h"文件,由CMU1394在其源文件1394camera646_src中提供。

所以,我的问题是:

1)我是否通过“安装 CMU1394 -> 重新编译 OpenCV”执行正确的程序?;

2) 我知道重新编译失败是因为编译器找不到“1394camera.h”。但是如何在 OpenCV 源文件中包含该文件(以及 1394camera646_src 中的其他 .h/.cpp 文件)并将它们一起编译?

【问题讨论】:

    标签: opencv firewire


    【解决方案1】:

    第一步添加头文件

    #include "precomp.hpp";
    #include "cvconfig.h";
    

    您可以在 CMake 生成的项目目录中找到 cvconfig.h 文件。

    第 2 步将源文件 cap_cmu.cpp 添加到您的项目中

    第 3 步链接正确的库(例如cmu1394.lib

    原力与你同在~

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      相关资源
      最近更新 更多