作者:大麴曲
感謝實驗室的小夥伴Wu C.和Yang S.Y.的幫助。
VS2015的安裝和配置,參考博客:http://blog.csdn.net/quxiaoxia1986/article/details/52352114
OpenCV3.1.0的安裝和配置,參考博客:http://blog.csdn.net/quxiaoxia1986/article/details/52352785
1.要搭建的環境描述
電腦系統:Windows 10 專業版
需要的工具版本:
【1】Visual studio2015 (VS2015);
【2】OpenCV3.1.0;
【3】QT5.7.0;
【4】Cmake3.6.1。
實施過程:
使用VS2015作爲開發環境(IDE,也就是寫代碼的工具);
使用OpenCV3.1.0作爲圖像處理代碼庫;
使用QT5.7.0用來寫gui界面程序;
使用cmake建立VS2015的工程,也就是產生.sln文件等。
2.安裝和配置
(1)VS2015的安裝和配置
參考我的博客:http://blog.csdn.net/quxiaoxia1986/article/details/52352114
(2)OpenCV3.1.0的安裝和配置
參考我的博客:http://blog.csdn.net/quxiaoxia1986/article/details/52352785
(3) QT5.7.0的安裝和配置
請自行搜索該內容吧,就是點擊點擊點擊,就安裝完啦。
(4)Cmake3.6.1的安裝和配置
請自行搜索該內容吧,就是點擊點擊點擊,就安裝完啦。
3. VS2015+QT5+OpenCV3開發環境的第一個演示程序
在此處,VS2015+QT5+OpenCV3開發環境的第一個演示程序。
該程序不完成什麼功能,只是測試這幾個工具搭在一起的開發環境是否配置正確,以及展示如何使用cmake建立工程。
3.1 建立文件夾
(1)先建立一個文件夾作爲一個工程,文件夾名稱比如:TestSLN2。
(2)在工程文件夾下建立兩個文件夾:src和bin。
其中src存放自己寫的源代碼;bin存放產生的工程文件等。
(3)在工程文件夾下建一個文件夾存放數據,命名爲DATA,不是必須的步驟。
爲了演示圖像是否可以正確讀取的例子而建立此文件夾,用來存放待讀取的文件。
放一張測試圖像,命名爲:TestImage.png。如下圖所示:
步驟(1-3)結束爲止,文件夾中內容如下:
3.2 寫代碼
(1)在src文件夾中寫代碼
在src文件夾中的文件包含:“CMakeLists.txt”,“main.cpp”和“QT_UI”。如下圖所示:
(2)QT建立GUI界面文件
其中“QT_UI”文件夾下存放用QT建立的GUI界面文件,至少包括:“mainwindow.cpp”,“mainwindow.h”和“mainwindow.ui”。如下圖所示:
3.2.1 步驟1-填“CMakeLists.txt”中內容
“CMakeLists.txt”中內容如下:
cmake_minimum_required(VERSION 3.6.1)
project(TestSLN2)
# #######################################
# 【*】添加編譯選項
set (CMAKE_PREFIX_PATH"E:\\QT\\InstallFiles\\5.7\\msvc2015_64")
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically whenneeded
set(CMAKE_AUTOMOC ON)
# #######################################
# Find the QtWidgets library
find_package(Qt5Widgets REQUIRED)
# #######################################
FIND_PACKAGE(OpenMP REQUIRED)
if(OPENMP_FOUND)
message("OPENMP FOUND")
set(CMAKE_C_FLAGS"${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS"${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
# #######################################
FIND_PACKAGE(OpenCV REQUIRED)
# #######################################
# 【*】添加頭文件
include_directories(${Qt5Widgets_INCLUDES})
include_directories(
././QT_UI/
)
# #######################################
# 【*】鏈接UI文件
QT5_WRAP_UI(ui_FILES ./QT_UI/mainwindow.ui)
# #######################################
SET (FILE
main.cpp
)
SET (QT_UI
QT_UI/mainwindow.h
QT_UI/mainwindow.cpp
)
# #######################################
ADD_EXECUTABLE(TestSLN2 ${FILE} ${QT_UI} ${ui_FILES})
qt5_use_modules(TestSLN2 Widgets)
# #######################################
# 【*】附加依賴項
TARGET_LINK_LIBRARIES(TestSLN2
# Qt5::Widgets
${Qt5Widgets_LIBRARIES}
${OpenCV_LIBS}
)
3.2.2 步驟2-填“main.cpp”的內容
“main.cpp”中內容如下:
由於博客的【代碼片】功能總出現顯示問題,此處代碼內容複製如下:#include <opencv2/opencv.hpp>
#include <QApplication>
#include <QDialog>
#include "mainwindow.h"
//功能:測試QT和OpenCV是否都正確地加載到了VS的開發環境。
using namespace cv;
int main(int argc,char *argv[])
{
//測試OpenCV是否配置正確
MatsrcImage = imread("../DATA/TestImage.png");//載入圖像
imshow("InputImage",srcImage);//顯示圖像
waitKey(10);//等待10ms
//測試QT是否配置正確
QApplicationa(argc,argv);
MainWindoww;
w.show();
returna.exec();
}
3.2.3 步驟3-QT建立GUI文件
打開QT
【文件】--【新建文件或項目】
接下來一步一步點擊默認的選項,出現如下一系列界面:
把文件“mainwindow.cpp”,“mainwindow.h”和“mainwindow.ui”複製到前面src文件夾中QT_UI文件下,如下圖所示:
之後可以用QT打開ui文件進行修改GUI的內容。隨意拖幾個控件進去,修改一下顯示內容,如下圖所示:
3.3 Cmake編譯建立VS的工程文件
打開cmake,填寫source code和binaries路徑,如下:
點擊【configure】,選擇VS2015的64位爲編譯器,如下圖所示:
點擊【finish】
再次點擊【configure】
點擊【generate】
在bin文件夾下產生了如下的內容:
3.4 VS2015編譯運行
(1)用vs2015打開bin文件夾中的.sln文件,如下:
(2)把TestSLN2設爲啓動項
(3)點擊綠色箭頭運行,出現如下內容:
Opencv的圖像顯示正常,QT的窗口出現正常。
之後使用QT編輯.ui文件,VS寫C++代碼(包括openCV)
4. 參考資料
[1]VS2015的安裝和配置, CSDN博客:http://blog.csdn.net/quxiaoxia1986/article/details/52352114
[2]OpenCV3.1.0的安裝和配置, CSDN博客:http://blog.csdn.net/quxiaoxia1986/article/details/52352785
[3]CSDN博客:http://blog.csdn.net/hustlx/article/details/50974336
[4]書:《OpenCV3 編程入門》毛星雲,冷雪飛等編著