栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

OpenCV编译安装-MinGW-Windows10-Qt

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenCV编译安装-MinGW-Windows10-Qt

openCV编译安装-MinGW-Windows10-Qt 文章目录
  • openCV编译安装-MinGW-Windows10-Qt
    • @[toc]
      • 1、准备工作
      • 2、解压藍
      • 3、Cmake编译梁
      • 4、测试OpenCV环境辰
      • 5、效果演示
      • 6、编译好的OpenCV开发包
更多精彩内容
个人内容分类汇总 
1、准备工作
  • CMake:下载最新版本即可
  • openCV:下载任意版本,可以下载源码或者官方编译好的VS版(其中也带有源码),我下载的是opencv-3.4.16
  • Qt版本:5.12.12
  • 编译版本:MinGW-64
2、解压藍
  • 编译好的安装包运行后会自解压到当前路径下的opencv文件夹中,如下图所示,其中build文件夹为官方已经编译好的,sources为源码,或者直接下载源码压缩包解压opencv-3.4.16.zip;

3、Cmake编译梁
  • 创建一个build文件夹,打开安装好的CMake软件,将源码文件夹中的CMakeLists.txt拖到Cmake中,然后点击Browse Build将路径设置为刚才创建的build。

  • 点击Configure,选择MinGW Makefiles,勾选Specift native compilers,然后点击Next;

  • 选择编译需要使用的**gcc和g++**路径,这里因为编译的是MinGW-64版本,所以我选择的路径就是:
    • D:/Qt/Qt5.12.12/Tools/mingw730_64/bin/gcc.exe
    • D:/Qt/Qt5.12.12/Tools/mingw730_64/bin/g++.exe

  • 设置好路径后点击Finish,这时可能会报错:Error in configuration process, project files may be invalid,这只要将CMAKE_MAKE_PROGRAM设置mingw32-make.exe的路径就可以了(注意是mingw-64版本的,不要选错了);

  • 设置好mingw32-make.exe的路径后,点击 Configure按键,可能会提示cc1.exe或cc1plus.exe程序运行找不到libwinpthread-1.dll;

  • 这个很好解决,就是cc1plus.exe这个程序运行缺少库,首先打开我们的神器Everything,输入运行的程序名称和缺少的库名称,找到对应位置,可能会发现有很多,找到和cc1plus.exe最接近的就可以;

  • 然后把动态库复制到cc1plus.exe文件路径下,然后就不会报错了,然后等待CMake加载一会;

  • 可以选择勾选BUILD_opencv_world,这样编译的所有的库将会生成一个opencv_world*.lib,方便使用时打包,不勾选将会生成多个库文件。

  • 再点击一次Configure,全部变白后就可以点击Grenerate就可以在build文件夹下生成编译需要的Makefile;

  • 然后点击打开cmd窗口,进入到build文件夹下,使用qt MinGW-64路径下的mingw32-make.exe进行编译,网上有的人直接输入make或者mingw32-make进行编译,那是自己修改过环境的,如果直接安装Qt后没有修改环境变量那直接输入make或者mingw32-make会显示找不到,这时就需要输入mingw32-make.exe的绝对路径;
    • D:QtQt5.12.12Toolsmingw730_64binmingw32-make.exe -j4,注意是mingw64路径下的make;
    • 设置好后直接回车开始编译,时间有的长;

  • 编译完成后,输入D:QtQt5.12.12Toolsmingw730_64binmingw32-make.exe install将编译好的库打包;

  • 等待执行完成后,在build文件夹下会生成一个install文件夹,这个文件夹下的所有内容就是编译好的OpenCV;

  • 将install 文件夹拷贝到E:/lib文件夹下,重命名为OpenCV_MinGW(这个不必要,可以放任意路径,不用重命名也可以);

4、测试OpenCV环境辰
  • 创建一个qt工程,编译器选择与编译opencv相同的编译器,这里使用的是MinGW64

  • 右键工程,选择添加库,点击下一步,

  • 点击浏览,选择E:libOpenCV_MinGWx64mingwliblibopencv_world3416.dll.a文件;
    • 平台勾选Windows;
    • 取消勾选为debug版本添加'd'作为后缀;
    • 然后点击下一步;

  • 会在.pro文件中生成下列三行代码;
win32: LIBS += -L$$PWD/../../lib/OpenCV_MinGW/x64/mingw/lib/ -llibopencv_world3416.dll

INCLUDEPATH += $$PWD/../../lib/OpenCV_MinGW/x64/mingw
DEPENDPATH += $$PWD/../../lib/OpenCV_MinGW/x64/mingw
  • 将/64/mingw改为include;
win32: LIBS += -L$$PWD/../../lib/OpenCV_MinGW/x64/mingw/lib/ -llibopencv_world3416.dll

INCLUDEPATH += $$PWD/../../lib/OpenCV_MinGW/include
DEPENDPATH += $$PWD/../../lib/OpenCV_MinGW/include
  • 在pro文件中添加DESTDIR = $$PWD/../bin,编译后的可执行程序会输出到bin文件夹中;

  • 添加头文件

#include

  • 添加命名空间

using namespace cv;

  • 输入如下代码就可以显示图片了
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    Mat image = imread("E:/tp/img/1.png");
    imshow("image", image);

}

Widget::~Widget()
{
    delete ui;
}
  • 编译完成后肯定是会显示程序异常结束,这是因为缺少opencv动态库;

  • 将编译好的OpenCV库中的libopencv_world3416.dll拷贝到测试程序的可执行程序路径下,再编译就正常了。

5、效果演示




6、编译好的OpenCV开发包

下载地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886526.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号