XIMEA:openCV 2.4.9找不到Ximea相机,虽然它可以和其他程序一起使用

时间:2014-09-24 21:30:44

标签: 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";

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

有人曾经通过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链接器库”两次,但仍然无法理解我的错误在哪里。

1 个答案:

答案 0 :(得分:1)

我花了一些时间在这里检查所有设置并决定由MSVS编译openCV,而不是minGW。然后我得到错误&#34; xiExt.h&#34; (我在minGW编译过程中错过了它),我用Google搜索并找到了this bug report。然后我在源代码中评论了一行,由minGW编译它......它开始工作了!

这只是openCV 2.4.9 proplem,因为2.4.10不再包含这个bug #include "xiExt.h"了。