2

虽然 XIMEA 摄像头(MQ013CG-E2)没问题,并且它正在使用来自 ximea.com 的示例简单演示程序(适用于 Win x64),但下一个代码总是打印“未找到 ximea 摄像头”:

VideoCapture cap;
if (!cap.open(CV_CAP_XIAPI)) cout << "ximea camera not found";

相同的:

CvCapture* capture = cvCreateCameraCapture(CV_CAP_XIAPI);
if (!capture) cout << "ximea camera not found";

如果连接了简单的 Logitech 网络摄像头,则上面的代码显示它存在(带有 CV_CAP_ANY 标志)。但是 ximea-camera 无法从 openCV 访问。OpenCV 是由 minGW 从官方来源使用带有选项“WITH_XIMEA”的 cmake 构建的。

有人曾经通过 openCV 从 ximea 相机中读取过一些东西吗?我知道这种相机不是很受欢迎,我什至在这里找不到标签“ximea”(创建新标签需要 1500 声望,所以这里也没有“ximea”标签)。

UPD:我可以通过 xiApi.h-functions 将信息从相机传输到 openCV。所以相机肯定有效。

UPD2:今天我收到了来自 ximea 的新 MSVS 项目示例,其中包括新的 openCV 2.4.9 库。它包含代码:

capture = cvCaptureFromCAM(0); //0=default, -1=any camera, 1..99=your camera
if (!capture) cout << "no camera detected" << endl;

我在 MSVS 中对其进行了编译,并且 exe 文件开始使用 ximea 提供的 opencv-libs 按预期使用 ximea cam。但是,当我尝试在 Eclipse 中编译相同的代码并使用 MinGW 创建的带有“WITH_XIMEA”选项的 opencv-libs 时,它总是显示“未检测到摄像头”。我检查了 CMake、Eclipse 项目“编译器包含”和“MinGW 链接器库”中的所有设置,但仍然无法理解我的错误在哪里。

4

1 回答 1

1

我花了一些时间在这里和那里检查所有设置,并决定用 MSVS 编译 openCV,而不是 minGW。然后我得到了“xiExt.h”的错误(我在 minGW 编译过程中错过了它),我用谷歌搜索它并找到了这个错误报告。然后我在源代码中注释了一行,由 minGW 编译并..它开始工作了!

它只是 openCV 2.4.9 问题,因为 2.4.10 不再包含这个错误#include "xiExt.h"

于 2014-09-29T15:12:44.937 回答