作者:大曲曲
邮箱:xiaoxia.qu@foxmail.com
感谢实验室的小伙伴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 编程入门》毛星云,冷雪飞等编著