2015-06-26 148 views
1

我發現Qt創建者默認使用OpenCV功能的Qt。OpenCV無法使用Qt打開相機

甚至當運行一個測試代碼(見下文)時會打開並顯示相機流。在這裏,無法打開相機(我正在使用XIMEA xiQ)。使用正常的攝像頭,它正在工作。

在Eclipse中這兩個工作。

至今我已經做了步驟小結:

  1. 的OpenCV與XIMEA攝像頭支持編譯
  2. 我重新編譯的OpenCV使用Qt支持
  3. make uninstall爲OpenCV的
  4. make 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(); 
} 

回答

1

最後,我能弄明白。

我不知道爲什麼(希望有人會對此行爲有一個解釋),但Qt Creator似乎並不總是使用最新版本的OpenCV。

我在我的電腦上發現了Qt Creator使用的一些以前的安裝位,而不是更新的版本庫文件。

在清除每個OpenCV位並使用Qt和XIMEA攝像頭驅動程序支持(以及其他不重要的東西)重新編譯後,一切工作都正常。

希望有所幫助。