c++ - XIMEA:openCV 2.4.9 无法找到 Ximea 相机,尽管它可以与其他程序一起正常工作

标签 c++ opencv camera mingw ximea

虽然 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";

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

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

UPD:我可以通过 xiApi.h 函数将信息从相机传输到 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 链接器库”中的所有设置两次,但仍然无法理解我的错误在哪里。

最佳答案

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

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

关于c++ - XIMEA:openCV 2.4.9 无法找到 Ximea 相机,尽管它可以与其他程序一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26026874/

相关文章:

python - 如何应用适当的阈值以去除二元板上的边缘

python - 检测物体并获得平均像素值(BGR)

c++ directx中的第一人称相机

python - 如何构建包含cv模块的exe文件

c++ - 需要 IloBoolVarArray 语法帮助

C++ 构造函数编码错误

android - dlopen 失败 : library "/system/lib64/libhwuibp.so" not found : Honor 4C 64-bit octa-core CPU

android - 永远等待 Handler.postDelayed 执行

c++ - 以列表作为值初始化 map

c++ - 删除 QTemporaryFile 时崩溃