Я понял, что создатель Qt использует Qt для функций OpenCV по умолчанию.OpenCV не может открыть камеру с помощью Qt
Когда даже запускается тестовый код (см. Ниже), который открывается и показывает поток камеры. Здесь невозможно открыть камеру (я использую XIMEA xiQ). С обычной веб-камерой он работает.
В Eclipse оба работают.
Краткий обзор шагов, которые я сделал до сих пор:
- OpenCV скомпилирован с поддержкой XIMEA камеры
- Я перекомпилировать OpenCV с поддержкой Qt
make uninstall
для текущей установки OpenCVmake install
для нового XIMEA & Поддержка с поддержкой Qt
Мой тестовый код:
#include "mainwindow.h"
#include <QApplication>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char *argv[]){
QApplication a(argc, argv);
MainWindow w;
w.show();
VideoCapture cap(0);
if (!cap.isOpened()){
cout << "Cannot open the video cam" << endl;
return -1;
}
while (1){
Mat frame;
bool bSuccess = cap.read(frame);
if (!bSuccess){
cout << "Cannot read a frame from video stream" << endl;
break;
}
imshow("MyVideo", frame);
if (waitKey(30) == 27){
cout << "esc key is pressed by user" << endl;
break;
}
}
return a.exec();
}