QT开发中经常遇到使用OpenCV,记录一下OpenCV库的编译调用过程。

承接各类STM32项目、JAVA、C++、Android、微信、Linux,毕业设计开发
手机:18559979152(微信同号)

环境:Window10 64位

一、安装软件:1、OpenCV  2、CMake 3、QT

1、安装OpenCV 3.4.7

下载地址:https://opencv.org/releases/        opencv-4.3.0-vc14_vc15.exe

安装OpenCV很简单,其实就是一个解压动作,解压到非中文目录下,我的目录是C:\OpenCV3.4.7

2、安装QT5.5.0

qt-opensource-windows-x86-mingw492-5.5.0.exe

下载地址:http://download.qt.io/archive/qt/

我下载的是5.5带MinGW版本,安装没什么好讲的,直接下一步,下一步,完成

3、安装CMake3.18

cmake-3.18.0-rc2-win64-x64.msi

下载地址:https://cmake.org/download/

安装时注意选择添加到系统变量,其它默认一路下一步,直到完成

二、配置环境变量

C:\Program Files\CMake\bin  CMake环境变量

C:\Qt\Qt5.5.0\Tools\mingw492_32\bin    MinGW环境变量

三、配置编译OpenCV

打开刚才安装的CMake

设置OpenCV源码路径

设置OpenCV编译输出路径(自建目录)

然后点击下面的Configure按钮,弹出窗口中的<指定该项目的生成器>选择MinGW Makefiles,下面单选框选择Specify  native compilers,单击下一步;

弹出窗口,选择C和C++编译器的目录,在QT5.5目录中tools目录里的MinGW工具里,单Finish完成

红色行为有错误,按下面的信息修改就行了,第一次点配置按钮,要很长时间,更改后重新单击配置按钮,直到没有错误

选中“WITH_OPENGL”、“WITH_QT”,将“WITH_IPP”取消。然后再次点【Configure】

Qt5_DIR            值为:C:/Qt/Qt5.5.0/5.5/mingw492_32/lib/cmake/Qt5
QT_QMAKE_EXECUTABLE    值为:C:/Qt/Qt5.5.0/5.5/mingw53_32/bin/qmake.exe
Qt5Concurrent_DIR        值为:C:/Qt/Qt5.5.0/5.5/mingw53_32/lib/cmake/Qt5Concurrent
Qt5Core_DIR          值为:C:/Qt/Qt5.5.0/5.5/mingw53_32/lib/cmake/Qt5Core
Qt5Gui_DIR              值为:C:/Qt/Qt5.5.0/5.5/mingw53_32/lib/cmake/Qt5Gui
Qt5Test_DIR             值为:C:/Qt/Qt5.5.0/5.5/mingw53_32/lib/cmake/Qt5Test
Qt5Widgets_DIR           值为:C:/Qt/Qt5.5.0/5.5/mingw53_32/lib/cmake/Qt5Widgets
Qt5OpenGL_DIR            值为:C:/Qt/Qt5.5.0/5.5/mingw53_32/lib/cmake/Qt5OpenGL

当信息显示Configuring done且没有错误时,单击generate按钮,生成完毕后,先不要关闭CMake如果后面编译有错误,还要更改配置。


下面开始用MinGW来编译OpenCV

使用管理员模式打开CMD

cd 到刚才CMake生成的源码目录(就是之前自己新建的文件夹),准备编译

输入“mingw32-make”命令,如果提示找不到命令啥的,看看文章前面的MinGW系统变量是不是没有设置,目录为C:\Qt\Qt5.5.0\Tools\mingw492_32\bin,根据你的QT安装位置设置环境变量

按回车进行编译

哦霍

一片绿油油后出现error

错误1

[ 40%] Building RC object modules/core/CMakeFiles/opencv_core.dir/vs_version.rc.obj

gcc: error: long: No such file or directory

解决方法:在cmake里面找到OPENCV_ENABLE_ALLOCATOR_STATS或者在search里面搜索,然后把后面的勾选去掉,接着Configure和Generate后,接着在cmd窗口中mingw32-make即可继续编译。

错误2

C:\OpenCV3.4.7\modules\videoio\src\cap_dshow.cpp:2298:41: error: 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintf
A' was not declared in this scope

C:\OpenCV3.4.7\modules\videoio\src\cap_dshow.cpp中添加
#define STRSAFE_NO_DEPRECATE

错误3

chmod’ 不是内部或外部命令,也不是可运行的程序 或批处理文件

if(NOT CMAKE_HOST_WIN32)  # chmod may be not available on Win32/MinGW (and it is not required)
      set(_pch_prepare_command COMMAND chmod +x "${_pch_generate_file_cmd}")
    endif()
    ADD_CUSTOM_COMMAND(
      OUTPUT "${_output}"
      COMMAND ${CMAKE_COMMAND} -E make_directory "${_outdir}"
      COMMAND chmod +x "${_pch_generate_file_cmd}"
      ${_pch_prepare_command}

错误4

报错文件test_hdr.cpp

error: 'time' was not declared in this scope

在头部引用一下

#include <sys/time.h>

错误5

错误行:C:/OpenCV3.4.7Build/modules/dnn/test_precomp.hpp:50:27: fatal error: test_common.hpp: No such file or directory
 #include "test_common.hpp"

把C:\OpenCV3.4.7\modules\dnn\test\test_common.hpp复制到C:\OpenCV3.4.7Build\modules\dnn\

经过个把小时绿油油输出后,编译完成。

编译成功后,再输入mingw32-make install,回车运行

安装完成

将编译生成目录中的bin目录添加到系统变量

C:\OpenCV3.4.7Build\bin

四、QT调用测试

打开QT新建一个工程

在xxx.pro中添加

INCLUDEPATH+="C:\OpenCV3.4.7Build\install\include"
INCLUDEPATH+="C:\OpenCV3.4.7Build\install\include\opencv"
INCLUDEPATH+="C:\OpenCV3.4.7Build\install\include\opencv2"
LIBS += C:\OpenCV3.4.7Build\lib\libopencv_*.a

在main.cpp中添加

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    //声明IplImage指针
       IplImage *pImg;
       //载入图片
       pImg = cvLoadImage("D:\\0200626235750.jpg", 1);
       //创建窗口
       cvNamedWindow("Image",1);
       //显示图像
       cvShowImage("Image",pImg);
       //等待按键
       cvWaitKey(0);
       //销毁窗口
       cvDestroyWindow("Image");
       //释放图像
       cvReleaseImage(&pImg);

运行程序,如果显示如下图,则调用成功

Window10 OpenCV3.4.7 CMake3.18.0 QT5.5.0 编译配置及调用相关推荐

  1. VS2013+OSG3.4.0+Qt5.5.1编译(超详)

    准备 第一步,下载所需要文件,编译osg需要三个文件osg.osg第三方库和osgdata,编译时需要用到cmake软件,我用的是vs2013和osg3.4.0 osg文件:http://www.op ...

  2. PCL1.8.0/ Qt5.7.0开发环境配置

    配置了几天pcl+vs+qt的开发环境未成功,退而求其次配置了qt+pcl的开发环境,特写下这篇文章备忘,本文参考了以下文章,感谢博主. https://blog.csdn.net/qq_347191 ...

  3. 【Y忍冬草】Qt5.8_VTK7.0_VS2015编译配置及测试中问题

    最近在做一个基于Qt的三维点云软件,涉及到点云的显示及操作,所以要在Qt中完成QVTKWidget插件的添加.在浮躁的心态下折腾了两天才成功的实现Qt5.8_VTK7.0_VS2015的编译配置及测试 ...

  4. AVB源码学习(一):AVB2.0工作原理及编译配置

    参考资料 感谢前辈的blog,安全相关的资料可太少了,很详细很卓越 https://blog.csdn.net/jackone12347/article/details/116241676 前言 在这 ...

  5. OpenCV4.0.1/4.0.0/3.4.2 + Contrib + Qt5.9 + CMake3.12.1编译及踩坑笔记、Qt5+OpenCV配置、代码验证、效果图、福利彩蛋

    Table of Contents 前言 Windows 10, OpenCV4.0.1, Qt5.9.3, CMake3.12.1, MinGW5.3.0 Windows 10, OpenCV4.0 ...

  6. vs2013+opencv3.1.0+qt5.3.5图像算法开发环境

    vs2013+opencv3.1.0+qt5.3.5图像算法开发环境 – 文章目录 vs2013+opencv3.1.0+qt5.3.5图像算法开发环境 前言 一.vs2013 二.opencv3.1 ...

  7. OpenCV3.2+Qt5.8.0+Win10开发视频监控系统----Qt之设置应用程序图标

    一.图标设置效果 (1)未设置前 (2)设置后 二.设置步骤 1.首先,创建一个图标格式的位图文件,其中包含图标的图像. (1)这可以用例如微软Visual Studio,选择:文件 -> 新建 ...

  8. opencv3.4.0安装contrib3.0.0模块

    1.## 需要下载的安装包 opencv3.4.0 百度云链接:https://pan.baidu.com/s/1O1KopBEBP8AGu8HgFhlVAQ 提取码:1c1n opencv_cont ...

  9. Ubuntu 18.4 qt5.12 安装搜狗拼音输入法

    Ubuntu 18.4 qt5.12 安装搜狗拼音输入法 安装fcitx 使用命令行模式安装 apt install fcitx 搜狗拼音 下载搜狗输入法 搜狗输入法下载地址 安装搜狗输入法 dpkg ...

最新文章

  1. 快速生成树算法java_生成树RSTP,快速生成树协议,交换网络必用的破环协议,面试必备...
  2. 循环取矩阵的某行_1.2 震惊! 某大二本科生写的矩阵乘法吊打Mathematica-线性代数库BLAS-矩阵 (上)...
  3. Hybris Commerce下单时遇到产品库存不足的解决办法
  4. 如何使用 tf object detection
  5. CentOS安装Oracle12C
  6. Linux运行级别介绍和root忘记密码找回方法
  7. mysql索引增加栏位_mysql 添加索引 mysql 如何创建索引
  8. 指针常量和常量指针的区别
  9. 最详细的wine配置
  10. Python爬虫—爬取京东商品信息(自动登录,换关键词,换页)
  11. 如何使用 React Native 构建信用卡扫描仪
  12. HCIP-三层网络架构实验
  13. 网络表情NLP(一)︱颜文字表情实体识别、属性检测、新颜发现
  14. 计算广告——搜索广告技术初窥
  15. Go语言核心之美 2.4-布尔值
  16. jwt_token的有效时间和刷新时间
  17. RK3399教程:linux clk使用
  18. NoteBurner iTunes DRM Audio Converter for Mac(音频转换工具) V2.4.4破解版
  19. Android Bugly的使用
  20. 中国聚客网[http://www.crossgo.com]正式开通拉!

热门文章

  1. JVM最佳学习笔记---总览
  2. 有c语言基础学python容易吗_学习Python需要先学C语言吗?0基础学Python难度大吗?
  3. 项目作业丨对话式对战游戏
  4. 300M的联通宽带,电脑直接连接光猫只有100M;电脑连接路由器,然后路由器连接光猫却有300M???
  5. openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
  6. MATLAB—数组运算及数组化编程
  7. 在for循环中运行setTimeout
  8. 计算机基础知识用语,电脑基础知识之常见术语
  9. LDD3源码分析之时间与延迟操作
  10. 63、基于51单片机数字频率计NE555数码管显示系统设计(程序+原理图+Proteus仿真+参考论文+开题报告+任务书+元器件清单等)