Install OpenCV Library for Qt Creator (update for 64bit)

Qt 是一個好用且完整的 GUI (Graphical User Interface) 開發程式,本身也提供一個 IDE (Integrated Development Environment) 『Qt Creator』來開發 C++ 專案。這裡要說明如何在 Qt Creator 上建置 OpenCV 的開發環境,讓 Qt 與 OpenCV 結合在一起。雖然 Qt 提供 Visual Studio 的 plug-in,可直接在 VC 上寫 GUI,但透過 Qt Creator 來設計 GUI 會比較快速且美觀。

大致流程可分為,1. Qt 安裝和 OpenCV 安裝;2. 用 mingw compiler 編譯 OpenCV library;3. Qt 專案上的環境設置。

1.Qt 安裝和 OpenCV 安裝

http://www.qt.io/download/ 點入 Qt download 頁面,回答一些問題及輸入基本資料後,Qt 會依據你的作業系統推薦安裝版本,只要按下 Download Now,就會開始安裝了。

2016-03-23_140954

安裝完後就可以使用 Qt Creator 來開發 C++ 專案了,但目前還無法使用 OpenCV。

2016-03-23_141158

接著到 http://opencv.org/ 安裝 OpenCV,選擇所屬的作業系統來安裝,安裝完後在 opencv 資料夾裡面會有兩個子資料夾,分別是C:\opencv\build 和 C:\opencv\sources。

2.compile OpenCV library for mingw/g++ compiler

(1) 到 https://cmake.org/download/ 下載 Cmake,且安裝至 C:\。將系統變數 Path 加入下列 Qt\bin 與 Cmake\bin 兩個路徑。(電腦>>內容>>進階系統設定>>環境變數>> path)

C:\Qt\Tools\mingw492_32\bin

C:\cmake-3.5.0-win32-x86\bin

(2) 新增資料夾 C:\opencv-mingw,開啟 cmake-gui.exe 設定 source code :C:/opencv/sources 和 build the binaries : C:\opencv-mingw。2016-03-23_142654

按下 Configure,選擇 MinGW Makefiles 與 Specify native compilers。2016-03-23_142849

選擇編譯器,到剛安裝 Qt 的資料夾裡面,找已經安裝好的 compiler mingw/g++。

2016-03-23_143359

接著就可以按下 Generate。將 WITH_QT 給打勾。打勾之後,再 Configure 一次,然後 Generate,這樣就完成了初步安裝。2016-03-23_143719

(3) 編譯 OpenCV library。打開 cmd console 到 C:\opencv-mingw,輸入 :  mingw32make。建置需要一些時間...2016-03-23_144230

完成後再輸入 : mingw32make install 2016-03-23_144605現在你已經完成 OpenCV 的建置了,可以在 Qt Creator 上 使用 OpenCV library。

3.在 Qt Creator 上新增專案

新增一個 Qt Widget Application,

2016-03-23_145305

在 pro 裡面設定 includepath 和 libraries location :

INCLUDEPATH += C:\\opencv-mingw\\install\\include
LIBS += -LC:\\opencv-mingw\\install\\x86\\mingw\\lib \
-llibopencv_core2412.dll \
-llibopencv_highgui2412.dll \
-llibopencv_imgproc2412.dll

2016-03-23_145747

接著就可以在 Qt IDE 上面寫 OpenCV 的 code 了,以下是簡單的 OpenCV image read & show 的程式。

#include "mainwindow.h"
#include <QApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>

using namespace cv;

int main(int argc, char *argv[])
 {
 //QApplication a(argc, argv);
 //MainWindow w;
 //w.show();

//return a.exec();
 Mat3b in_img;
 in_img = imread("D://6_QT//lena_std.bmp",1);
 imshow("test", in_img);
 waitKey(0);

return 0;
 }

 

2016-03-23_150556

 

 

4. For Windows 64 bit 環境

在 64 bit 安裝與上述的步驟一樣,但有些要特別注意的地方。

第一,Qt Download 並沒有提供 64bit Source,所以到以下目錄去下載,

https://sourceforge.net/projects/qt64ng/files/qt/x86-64/5.4.1/mingw-4.9/sjlj/

並且安裝至 C:\Qt,除了安裝 64bit 外,還要至 Qt 官網下載 32bit 版本,在官網點選 install online 後,選擇一個版本(這裡以 5.6版為例) 和 Tools (Qtcreator & mingw492_32),一樣安裝至 C:\Qt 資料夾內。而 OpenCV 版本的話,我下載最新版本( OpenCV3.2.0, 2017/05)。

第二,資料都安裝妥當後,接下來設定電腦環境變數,除了在 32bit 所提到的

C:\Qt\Tools\mingw492_32\bin

C:\cmake-3.5.0-win32-x86\bin

還要加入以下兩個路徑,

C:\Qt\qt-5.4.1-x64-mingw492r1-sjlj-opengl-rev1\mingw64\bin (64bit 版本)

C:\Qt\Tools\mingw492_32\i686-w64-mingw32\bin

接下來重新開機後,就可以開始上述 2. CMake 的步驟了。

第三,mingw32-make install 完畢之後,將

C:\opencv-mingw\install\x86\mingw\bin

也加入系統環境變數裡。且在 pro 裡面設定 includepath 和 libraries location 時,

LIBS 多加入 -llibopencv_imgcodecs320.dll (因為 imread 在 OpenCV3 之後被定義到 imgcodecs 裡面)。

完成以上的步驟後,一樣可以在 64bit 環境下,用 QtCreator 寫 OpenCV 。


 

reference : 

http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml

https://zahidhasan.wordpress.com/2014/08/19/qt-5-3-1-64-bit-mingw-windows/

reference for 64 bit :

https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

http://stackoverflow.com/questions/34497099/opencv-undefined-reference-to-imread

2 thoughts on “Install OpenCV Library for Qt Creator (update for 64bit)”

  1. 這邊有個問題想要請教一下
    我的configure是失敗的然後跑出下列的訊息
    CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
    我後來去爬了別了的文章說要重新啟動CMake或者重新開機,這些我都做過配置還是會失敗,想請教一下該如何解決,謝謝!!!!

    1. 你安裝QT的MinGW是32還64bit?注意一下是不是符合你的OS。
      我是win7 32bit OS,依據上面步驟安裝是沒問題的;而原文是安裝在64bit MinGW。
      這部分我不是專家,我只是照原文翻譯操作步驟,sorry,可能無法確切幫上忙。

Leave a Reply

Your email address will not be published. Required fields are marked *