首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV不能使用Qt打开相机

OpenCV不能使用Qt打开相机
EN

Stack Overflow用户
提问于 2015-06-26 12:23:42
回答 1查看 1.4K关注 0票数 1

我发现Qt创建者默认使用Qt作为OpenCV函数。

甚至当运行一个测试代码(见下面),它会打开并显示一个照相机流。在这里,不可能打开相机(我使用的是XIMEA xiQ)。与正常的网络摄像头,它是工作的。

在Eclipse中,两者都在工作。

我迄今所采取步骤的简要概述:

  1. OpenCV是用XIMEA摄像机支持编译的。
  2. 我用Qt支持重新编译了OpenCV。
  3. 用于当前安装make uninstall的OpenCV
  4. 支持新XIMEA & Qt的安装的make install

我的测试代码:

代码语言:javascript
复制
#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();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-10 12:58:46

最后,我想出了办法。

我不知道为什么(希望有人会对这种行为做出解释),但Qt似乎并不总是使用最新版本的OpenCV。

我在我的计算机上找到了一些以前安装的代码,Qt正在使用它,而不是更新的版本库文件。

在清除每一个OpenCV位并用Qt和XIMEA相机驱动程序支持(和其他不重要的东西)重新编译它之后,一切都很好。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31073121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档