1. MinGW 编译OpenCV
参考其他教程
2. 添加系统环境变量 OpenCV_DIR
- 如果有执行 mingw32-make install, 则为 build 目录下install 文件的完整路径,如 D:\opencv\build\install
- 如果没有执行 上面的 install, 则为build 目录的完整路径,如 D:\opencv\build
3. qt 中新建 Plain C++ Application
Build System 选择为CMake
Kit 选择 MinGW64 或者 MinGW32, 这里和OpenCV 编译的时候选的MinGW 版本一致
之后在Qt Creator 中会生成如下的CMake 项目结构, 可以看到这里的项目名称为 test_temp
其中 CMakeLists.txt 的内容为
cmake_minimum_required(VERSION 3.5)
project(test_temp LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(test_temp main.cpp)
添加 OpenCV 库配置语句后如下
cmake_minimum_required(VERSION 3.5)
project(test_temp LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# opencv
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(test_temp main.cpp)
# opencv
target_link_libraries( test_temp ${OpenCV_LIBS} )
代码如下
#include <iostream>
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( "C:\\Users\\MarxLiu\\Pictures\\liudehua.jpg", 1 );
std::cout <<image.size() << std::endl;
if(!image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
编译后运行输出结果如下
[640 x 697]
qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
并没有显示出来,这里提示找不到插件 “windows”, 经过一番搜索后,找到解决方法如下
把 qt 目录下的对应于编译器版本目录下的plugins 文件夹下的 platforms 文件夹拷贝到编译后生成的二进制文件的同级目录下,比如我的操作是这样的
xcopy /I D:\software\Qt5\5.12.8\5.12.8\mingw73_64\plugins\platforms D:\study\cv\test\build-test_temp-Desktop_Qt_5_12_8_MinGW_64_bit-Debug\platforms
再运行