Windows 平台下基于MinGW和Qt 的OpenCV 之CMake 项目配置

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

再运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值