我发现Qt创建者默认使用Qt作为OpenCV函数。
甚至当运行一个测试代码(见下面),它会打开并显示一个照相机流。在这里,不可能打开相机(我使用的是XIMEA xiQ)。与正常的网络摄像头,它是工作的。
在Eclipse中,两者都在工作。
我迄今所采取步骤的简要概述:
make uninstall的OpenCVmake install我的测试代码:
#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();
}发布于 2015-07-10 12:58:46
最后,我想出了办法。
我不知道为什么(希望有人会对这种行为做出解释),但Qt似乎并不总是使用最新版本的OpenCV。
我在我的计算机上找到了一些以前安装的代码,Qt正在使用它,而不是更新的版本库文件。
在清除每一个OpenCV位并用Qt和XIMEA相机驱动程序支持(和其他不重要的东西)重新编译它之后,一切都很好。
希望这能有所帮助。
https://stackoverflow.com/questions/31073121
复制相似问题