平台: Windows 10 x64
CMake 3.10
OpenCV 3.4.9
配置步骤:
1、添加环境变量
右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> 新建
变量名:OpenCV_DIR
变量值:经解压-编译-下载后得到的OpenCV目录
2、配置CMakeList.txt
cmake_minimum_required(VERSION 3.5)
project(open_new_window LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check http://doc.qt.io/qt-5/deployment-android.html for more information.
# They need to be set before the find_package(Qt5 ...) call.
#if(ANDROID)
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
# if (ANDROID_ABI STREQUAL "armeabi-v7a")
# set(ANDROID_EXTRA_LIBS
# ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
# ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
# endif()
#endif()
#配置OpenCV路径
set(OpenCV_DIR "E:/Qt/OpenCV3.4.9/opencv/rebuild_for_qt")
find_package(Qt5 COMPONENTS Widgets REQUIRED)
find_package(OpenCV REQUIRED)
#打印OpenCV信息
message(STATUS "OpenCV libaray information:")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " header file: ${OpenCV_INCLUDE_DIRS}")
include_directories(${OpenCV_INCLUDE_DIRS})
if(ANDROID)
add_library(open_new_window SHARED
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)
else()
add_executable(open_new_window
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)
endif()
#建立OpenCV和项目的链接
target_link_libraries(open_new_window PRIVATE Qt5::Widgets ${OpenCV_LIBS})
3、测试
在main.cpp上复制粘贴下列代码
#include "mainwindow.h"
#include "opencv2/opencv.hpp"
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
cv::Mat src = imread("C:/Users/Desktop/IMG_0029.JPG", CV_LOAD_IMAGE_COLOR);
if(!src.data) //or == if(src.empty())
{
cout<<"Could not open or find the image"<< endl;
return -1;
}
cv::namedWindow("Display", 0); // 0:表示可压缩 , 当显示图片太大,只能部分显示时使用此参数
cv::resizeWindow("Display", cv::Size(640, 480));
cv::imshow("Display", src);
cv::waitKey(0 );
return 0;
return a.exec();
}
感谢参考链接
CMakeLists.txt配置OpenCV_陨星落云的博客-CSDN博客_cmakelists.txt opencv
CMakeLists.txt上OpenCV库配置_mylaf的博客-CSDN博客_cmakelists.txt opencv
Windows通过CmakeLists.txt使用OpenCV,适用于QT、Clion_Cynthia.Chen的博客-CSDN博客