虽然 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 链接器库”中的所有设置,但仍然无法理解我的错误在哪里。