OpenCV编译安装-MinGW-Windows10-Qt

OpenCV编译安装-MinGW-Windows10-Qt,第1张

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:\Qt\Qt5.12.12\Tools\mingw730_64\bin\mingw32-make.exe -j4,注意是mingw64路径下的make;
    • 设置好后直接回车开始编译,时间有的长;

  • 编译完成后,输入D:\Qt\Qt5.12.12\Tools\mingw730_64\bin\mingw32-make.exe install将编译好的库打包;

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

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

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

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

  • 点击浏览,选择E:\lib\OpenCV_MinGW\x64\mingw\lib\libopencv_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开发包

下载地址

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/921011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存