Хотя камера XIMEA (MQ013CG-E2) в порядке и работает с примерами простых демонстрационных программ (для Win x64) с веб-сайта ximea.com, следующий код всегда печатает «камера 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-камера недоступна из openCV. OpenCV собирается с использованием cmake с опцией «WITH_XIMEA» от minGW из официального источника.
Кто-нибудь когда-нибудь читал что-то с камеры ximea через openCV? Я знаю, что такие камеры не очень популярны, я даже не смог найти здесь тег «ximea» (создание нового тега требует 1500 репутации, поэтому здесь тоже нет тега «ximea»).
UPD: я могу передавать информацию с камеры на openCV через xiApi.h-функции. Так что камера точно работает.
UPD2: мне сегодня предоставили новый пример MSVS-проекта от ximea, который включает новые библиотеки 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. Но когда я пытаюсь скомпилировать тот же код в Eclipse и использовать opencv-libs, созданные MinGW с опцией «WITH_XIMEA», он всегда показывает «камера не обнаружена». Я дважды проверил все настройки в CMake, проекте Eclipse «включает в себя компилятор» и «компоновщик MinGW», но все еще не могу понять, в чем моя ошибка.
Я потратил некоторое время на проверку всех настроек и решил скомпилировать openCV по MSVS, а не по minGW. Тогда я получил ошибку с «xiExt.h» (я пропустил его во время процесса компиляции minGW), я погуглил его и нашел этот отчет об ошибке. Затем я прокомментировал одну строку в исходном коде, скомпилировал ее с помощью minGW и … она начала работать!
Это только openCV 2.4.9 proplem, так как 2.4.10 не содержит этой ошибки #include "xiExt.h"
больше.