• WIN10下使用MinGW编译安装运行OpenCV


    前言

        网上WINDOWS系统大多是用CMake+VS安装的OpenCV,但是VS写C/C++太麻烦,而且移植性差,于是笔者决定用MinGW64。相关该博文同时介绍了编译安装存在的问题,笔者将从简介绍步骤

    软件环境

    • windows10-64bit
    • MinGW64-gcc8.1.0
    • CMake 3.15.1
    • OpenCV 4.1.1

    安装步骤

     1. 安装CMake+MinGW64

         参考,注意添加系统环境变量

     2. 下载OpenCV

         上下载最新发行版的source文件,下载解压会得到一个"opencv-4.1.1",笔者将其改名为"sources",并移动到"D:SoftwareProOpenCV_MinGW"文件夹下,并同时新建"build"文件夹。

    3. 编译OpenCV

        打开 CMake-gui,sources和build文件夹配置如下,然后configure

    configure一次之后会变成红色,然后勾选WITH_OPENGL和ENABLE_CXX11(OpenCV4之后应该没这个选项),不勾选WITH_IPP、ENABLE_PRECOMPILED_HEADERS和WITH_OPENCL_D3D11_NV,最后configure再generate生成Makefile文件。注意后面安装的头文件和lib文件都会在下图红色线的路径。

    4. 安装OpenCV

        打开VS Code终端,cd 到D:SoftwareProOpenCV_MinGWuild,然后输入"mingw32-make -j 8"回车设置8线程加快安装速度,然后输入"mingw32-make install"回车安装。安装完毕就可以看到"D:SoftwareProOpenCV_MinGWuildinstall"下如下图

    然后新建Path环境变量”D:SoftwareProOpenCV_MinGWuildinstallx64mingwin“。

    5. 运行OpenCV实例

       笔者在"C:UsersJJ_OMENDesktopProjects est",新建了main.cpp, CMakeLists和build文件夹,并加了名称为"1.jpg"的图片,

    main.cpp

    #include <opencv.hpp>
    
    #include <iostream>  
    using namespace cv;
    using namespace std;
     
    int main()
    {
    	cout << "OpenCV Version: " << CV_VERSION << endl;
    	Mat img = imread("../1.jpg");
    	imshow("1440", img);
    	waitKey(0);
    	return 0;
    }

    CMakeLists.txt

    #设置cmake最低版本
    cmake_minimum_required(VERSION 3.2)
    
    #设置项目名称
    PROJECT(hello)
    
    #寻找OpenCV库
    FIND_PACKAGE(OpenCV REQUIRED)
    #打印调试信息
    #message(STATUS "version: ${OpenCV_VERSION}")
    #cmakemessage(STATUS "OpenCV_INCLUDE_DIRS = ${OpenCV_INCLUDE_DIRS}")
    #message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}")
    #message(STATUS "PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}")
    
    #包含项目头文件和OpenCV相关头文件路径
    INCLUDE_DIRECTORIES(
        ${PROJECT_SOURCE_DIR}
        #${OpenCV_INCLUDE_DIRS}
        #以下路径自行更改
        "D:/Software/Pro/OpenCV_MinGW/build/install/include/opencv2"
    
    )
    
    #设置源文件信息
    set(SRC
        ${PROJECT_SOURCE_DIR}/main.cpp
    )
    
    #编译可执行程序
    ADD_EXECUTABLE(hello ${SRC})
    
    #添加动态链接库
    TARGET_LINK_LIBRARIES(hello ${OpenCV_LIBS})
    

    然后在VS Code中CRTL+SHIFT+P输入"c/c++..."找到红色下划线那个

     配置如下

    {
        "configurations": [
            {
                "name": "Win32",
                "includePath": [
                    "${workspaceFolder}/**",
                    "D:/Software/Pro/OpenCV_MinGW/build/install/include/opencv2/**",
                    "D:/Software/Pro/OpenCV_MinGW/build/install/include"
                ],
                "defines": [
                    "_DEBUG",
                    "UNICODE",
                    "_UNICODE"
                ],
                "compilerPath": "C:\mingw64\bin\gcc.exe",
                "cStandard": "c11",
                "cppStandard": "c++17",
                "intelliSenseMode": "gcc-x64"
            },
            {
                "name": "Linux",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [
                    "_DEBUG",
                    "UNICODE",
                    "_UNICODE"
                ],
                "compilerPath": "C:\mingw64\bin\gcc.exe",
                "cStandard": "c11",
                "cppStandard": "c++17",
                "intelliSenseMode": "gcc-x64"
            }
        ],
        "version": 4
    }

    重点改的地方如下 

    也可以进入C/C++ edit configuration (UI)更改,这个自行百度

    以上配置好了之后,在终端cd到"C:UsersJJ_OMENDesktopProjects estuild",然后" cmake -G "MinGW Makefiles" ../ "或者"cmake . "生成makefile,然后输入"min" TAB补全"mingw32-make”,然后输入"hello"TAB补全,就可以看到输出结果了。 

  • 相关阅读:
    keepalived高可用+nginx证书代理
    dfs缩略图
    FastDFS分布式图片服务器搭建
    red5视频播放服务器
    压力测试操作流程
    mysql主从库配置读写分离以及备份
    jdk环境
    mysql主从库配置读写分离以及备份
    mysql5.7.26安装
    数据库异地备份(脚本)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13281749.html
Copyright © 2020-2023  润新知