IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> VScode搭建Opencv(C++开发环境) -> 正文阅读

[C++知识库]VScode搭建Opencv(C++开发环境)

用了半天事件,看了各种的博客终于配置成功了,在这里记录并分享一下,让更多的人少走弯路。

本次环境是Win 10.

一、准备软件

我们本次用到的3个软件,(建议读者文件路径,文件版本 尽量都和我相同,这样不容易出错。不同的也可以先自己试一下,不着急换。)

MinGw:版本:8.1.0-release-posix-seh-rt_v6-rev0

Cmake:版本:3.20.2

Opencv:版本:4.5.2

二 、下载软件

1、MinGw下载

mingw64
mingw1
在这里插入图片描述
下载该文件,下载后解压,然后记住位置。为了方便,我把它改名为MinGw。(这里是MinGw软件)
添加环境变量。我这里MinGw的位置是:F:/MinGw
所以我们添加的环境变量是:F:/MinGw/bin
然后 ctrl+R ,输入cmd,调出 cmd命令窗口。
输入: gcc -v
在这里插入图片描述
显示这样,就说明MinGw安装配置完成。

2、 Cmake下载

Index of /files/v3.20 (cmake.org)
 在这里插入图片描述
下载完后,和刚才的过程一样,解压生成一个文件夹。

同样为了方便,我们把文件夹的名字改为 cmake,然后同样的我这里的路径是:
F:/cmake
我们继续添加环境变量:F:/cmake/bin
然后,然后 ctrl+R ,输入cmd,调出 cmd命令窗口。
输入: cmake -version
在这里插入图片描述
然后我们的第二个软件也安装配置完成了。

3、Opencv下载

** https://opencv.org/releases/**
在这里插入图片描述

下载后,安装。(指定目录,后期要用),我这里仍然指定的是F盘
然后3个软件都下载安装配置完成了。

三、编译

这里我要解释一下,Opencv本来是可以直接应用在vs里的,但是vs太重,不方便,相比之下,使用vscode更加轻量和方便,而且有很多的插件可以让我们定制化。因此我们选用vscode配置opencv。

但是vscode没办法直接使用opencv,我们需要把opencv的源文件进行编译,然后才能使用。这也是我们要用到cmake的原因。下面我们要使用cmake编译opencv的源文件。

1、cmake-gui

找到cmake文件夹下的bin里的cmake-gui 文件,启动。
F:/cmake/bin/cmake-gui
在这里插入图片描述
Where is the source code: 这里使用opencv目录下的source目录

Where to build the binaries: 这里是编译后的文件的放置目录
一般教程都放到opencv/build/x64/mingw
(注:这里的mingw是由我们自己创建的空文件夹)。

在这里插入图片描述
然后点 Configure
在这里插入图片描述
这里不要选错嗷,我们要用 mingw makefile。继续next。

在这里插入图片描述
这里意思是选择c 和 cpp 文件的编译工具,c我们用gcc.exe.cpp我们用g++.exe。
路径就是MinGw/bin/ 下的
继续 finish,会开始下载我们需要的东西。一些文件什么的。

执行过程中消息框会出现一堆红色信息,最后显示Configure done,是正常的。如果执行时中断,则存在其他问题。
(这里是借鉴了一位前辈的经验。)

如果没有 ”科学上网“ 的话,会有一些配置下载不了,我们需要手动下载。
例如:
在这里插入图片描述
这里的红字信息,意思就是有一个文件下载失败,然后 我们去打开
在这里插入图片描述
这个文件,去查看日志,看看到底是哪个文件不行。
在这里插入图片描述
(也可以看看前辈的经验CMake编译OpenCV时opencv_ffmpeg.dll等下载失败的话,进入这个网:https://www.cnblogs.com/huluwa508/p/10142718.html

GitHub的东西可以通过这个网站加速下载:https://ghproxy.com

在这里插入图片描述
就像这样:
在这里插入图片描述
然后重新回到cmake-gui,再点一次Configure

在执行完后,把关于python的都给取消勾选。勾选BUILD_opencv_world,WITH_OPENGL和BUILD_EXAMPLES,不勾选WITH_IPP、WITH_MSMF和ENABLE_PRECOMPILED_HEADERS(如果有的话),CPU_DISPATCH选空。

继续General。
在这里插入图片描述

2、make

到这里,该配置的也都完成了,需要去用编译生成。
ctrl+R,输入cmd进入命令行模式:
进入刚刚创建生成的mingw文件夹
f:
cd opencv/build/x64/mingw
执行命令: minGW32-make -j 4
在这里插入图片描述

(-j 4 是为了执行的更快,如果你电脑配置可以,你甚至可以 -j 8)
然后静静等待……
中途可能会因为某些不知名原因出错,比如(软件版本和我的不一样。那就试试和我一样的软件版本吧。)其他的错误,建议百度,或发给我,我帮你看(不保证能解决)。

3、install

没有出错的话,我们就继续在该目录输入命令:
minGW32-make install
这样会生成一个install目录。至此,皇天不负有心人,我们终于编译完成!
然后我们继续添加两个环境变量:
第一个path是:F:/opencv/build/x64/vc15/bin
第二个path是:F:/opencv/build/x64/mingw/bin
在这里插入图片描述
(自行根据自己的目录进行更改。)

四、 VScode配置

主要配置3个json

1、launch.json

(自行配置的属性: miDebuggerPath)

{

    "version": "0.2.0",
    "configurations": [
        {
            "name": "opencv debuge",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\Debugger\\${fileBasenameNoExtension}.exe",
            //上面这个Debugger是我自己定义的,为了方便放置生成的exe文件
            "args": [],
            "stopAtEntry": false, //这里如果为 false,则说明调试直接运行。(反之则停止)
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,//是否调用外部cmd
            "MIMode": "gdb",
            "miDebuggerPath": "F:\\MinGw\\bin\\gdb.exe",//自己进行设置
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "opencv3.5.2"
        }
    ]
}

2、c_cpp_properties.json

includePath 的第一个不用动,后面的要设置成自己的路径。

{
    "configurations": [
        {
            "name": "win",
            "includePath": [
                "${workspaceFolder}/**",
                "F:/opencv/build/x64/mingw/install/include",
                "F:/opencv/build/x64/mingw/install/include/opencv2"
            ],
            "defines": [],
            "compilerPath": "F:MinGw/bin/g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

3、tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "opencv3.5.2",
            "command": "F:/MinGw/bin/g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${workspaceFolder}\\Debugger\\${fileBasenameNoExtension}.exe",
                //上面这个Debugger是我自己定义的,为了方便放置生成的exe文件
                "F:/opencv/build/x64/mingw/bin/libopencv_world452.dll",
                "-I",
                "F:/opencv/build/x64/mingw/install/include",
                "-I",
                "F:/opencv/build/x64/mingw/install/include/opencv2",
            ],
            "options": {
                "cwd": "F:/MinGw/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

五、测试

刚才文件中的Debugger文件夹我们要创建好。里边会放置自动生成的exe文件。
exe文件执行需要依赖文件。我们还要把依赖文件放到该文件夹中,这样生成exe文件的时候才能调用该依赖而不出错。没有该依赖的话,就无法生成exe文件。

找到该依赖文件:
F:\opencv\build\x64\MinGw\install\x64\mingw\bin
里有两个ddl文件:

libopencv_world452.dll
opencv_videoio_ffmpeg452_64.dll

读者也去相似的目录去寻找,然后把该文件复制到Debugger目录下。
在这里插入图片描述

然后创建测试文件:(调用摄像头)
如果读者有opencv基础,可以自行测试。我提供一个测试摄像头的cpp文件。

test.cpp


#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture cap(0);
    Mat img;

    while (1)
    {
        cap >> img;
        if (img.empty())
            break;
        namedWindow("img", WINDOW_NORMAL);
        imshow("img", img);
        if (27 == waitKey(20))
            break;
    }

    return 0;
}

按F5进行运行,我这里直接运行会失败,显示找不到头文件,不知道哪里错了。
那就直接改用F5了。
能调用摄像头就说明大功告成!芜湖。 ESC键退出。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章           查看所有文章
加:2021-09-12 12:59:34  更:2021-09-12 13:02:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:26:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码