QT+Cmake+opencv源码,编译成opencv库

配置环境:windows10
QT:5.12.0

准备的材料:
cmake-3.13.1-win64-x64.msi --》Cmake工具
opencv_contrib-3.4.4.zip —》别人做好的模块包,有什么人脸模块啊,啥的。如果不需要额外模块也可以不用下载
opencv-3.4.4-vc14_vc15.exe —》生成opencv源码
qt-opensource-windows-x86-5.12.0.exe --》qt creator 安装包

qt creator 下载链接:http://download.qt.io/archive/qt/5.12/5.12.0/?C=M;O=A
其他工具链接:https://pan.baidu.com/s/1fDUFLADDoWT9PubgLKl-GQ
提取码:tp21
(qt creator 安装步骤,先略过,这里默认已经安装了QT)
下面,上图,看步骤!!!

在这里插入图片描述

1.安装cmake

cmake的安装一定要选择 添加到环境变量(可以选择全部用户,也可以选择当前用户)
也可以选第二个

(我的老爷机安装完cmake后并没有检测到cmake工具,如果也有这种情况的小伙伴,安装完后要重启一下电脑,不然QT就检测不到Cmake工具当前环境。手动添加的话,后面编译成功概率不高)
在这里插入图片描述
在工具的选项下,看到这个自动生成的Cmake工具路径,恭喜你,成功了50%

这里先说一下我的编译的环境:版本是4.8.0的。QT 5.12.0
在这里插入图片描述

2.opencv 安装

直接打开opencv-3.4.4-vc14_vc15.exe ,
安装路径,自由选择 (比如:解压到c盘、D盘…)
我这里是源码路径 D:\opencv\sources
如果安装好后,会生成一个opencv包,打开里面会有一个 source的包

0)opencv项目

打开QT软件,点击编辑,然后将 source包里面的CMakeLists.txt 拖过去QT的项目框上。

如果有CMakeLists.txt.user这个文件,我建议把 “CMakeLists.txt.user” 先将这个文件删掉 ,再拖动编译
在这里插入图片描述

1)构建设置

1.拖动完CMakeLists.txt ,会自动跳转配置工程:
然后按照下图步骤( 进入【项目】,编译构造配置选择Release。)
在这里插入图片描述
然后等几分钟,这段时间 Qt 正在读取 CMakeLists.txt 文件,当在概要信息看到 Configuring done 和 Generating done 就读取完了。
加粗样式
如果构建时一直卡在FFMPEG: Download: opencv_ffmpeg.dll,解决方法:重新开机,可能是cmake环境没更新好
在这里插入图片描述

读取成功:
在这里插入图片描述

2)配置编译

1、进入【项目】,找到 WITH_MSMF关键字,把ON上的√去掉
在这里插入图片描述
2、设置安装路径
进入【项目】,找到 CMAKE_INSTALL_PREFIX,设置一个路径,这个路径是编译完成后输出的路径。(我这里是 C:\opencv\out )
out是我新建的一个文件夹

在这里插入图片描述

3、如果有需要添加额外模块的,可以修改变量:
OPENCV_EXTRA_MODULES_PATH
例如:
在这里插入图片描述
模块的话自己有需要就添加,模块就在 opencv_contrib-3.4.4 这个文件里面,modules这个文件夹下有很多模块的

4、选择安装
在构建步骤里的“详情”下,勾选 install
在这里插入图片描述
4、其他变量保持默认,点击应用配置,然后等待新的配置生成
在这里插入图片描述

5、新的配置生成后,应用配置按钮会变成灰色,说明成功了
在这里插入图片描述

**

3、OPENCV源码编译生成库

**

点击编辑,然后按一下运行的按钮就开始编译,最后漫长的等待…等待进度条加载完毕…
opencv源码编译完成后,会生成opencv库,生成的位置就是上面,我们设置 CMAKE_INSTALL_PREFIX 变量的值 (我这里是 C:\opencv\out )
在这里插入图片描述
如果之前 CMAKE_INSTALL_PREFIX 的路径下并没有生产库,可以在项目的构建下查看CMAKE_INSTALL_PREFIX 有没有保存。只要根据CMAKE_INSTALL_PREFIX 的值查找编译输出的文件就可以了

最后生成一个文件夹,里面有头文件和动态库等等,
在这里插入图片描述

4、创建QT项目(调用opencv库)

在D盘创建opencv\opencv64,把编译好的输出文件复制到这
在这里插入图片描述
1、创建一个Qt工程 mopencv,
在工程文件中添加头文件路径和添加编译用到的库的路径

//opencv用到的头文件路径

INCLUDEPATH +=D:\opencv\opencv64\include
INCLUDEPATH +=D:\opencv\opencv64\include\opencv
INCLUDEPATH +=D:\opencv\opencv64\include\opencv2

//opencv库的路径
LIBS += D:\opencv\opencv64\x64\mingw\lib\libopencv*

在这里插入图片描述
在mainwindow.cpp下编写

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <core/mat.hpp>
#include <core/mat.hpp>
#include <opencv.hpp>
#include <videoio.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    
      //通过opencv采集图像显示
      cv::Mat vImage; //==>QImage
      cv::VideoCapture video(0);
      while(1)
      {
          video >> vImage;
          if(vImage.data == NULL)
          {

          }
          //灰度图
          cv::Mat outImage;
          cvtColor(vImage, outImage, CV_RGB2GRAY);

          imshow("video",outImage);
          imshow("image", vImage);
          cv::waitKey(1);
      }


}

如果不需要每个函数添加 cv::

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <core/mat.hpp>
#include <core/mat.hpp>
#include <opencv.hpp>
#include <videoio.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>

using namespace cv;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
      //通过opencv采集图像显示
      Mat vImage; //==>QImage
      VideoCapture video(0);
      while(1)
      {
          video >> vImage;
          if(vImage.data == NULL)
          {

          }
          //灰度图
          Mat outImage;
          cvtColor(vImage, outImage, CV_RGB2GRAY);

          imshow("video",outImage);
          imshow("image", vImage);
          cv::waitKey(1);
      }


}

MainWindow::~MainWindow()
{
    delete ui;
}

1、如果运行时出现这个,说明没有添加系统环境变量
在这里插入图片描述
2、新增运行运库
D:\opencv\opencv64\x64\mingw\bin 路径添加到系统环境变量,记得加分号,然后保存。从新运行
在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值