0
点赞
收藏
分享

微信扫一扫

Vscode Opencv4.5.2环境搭建

菜头粿子园 2022-03-18 阅读 54

目录

引言1
环境2
步骤3

引言
因为个人需要读懂视觉代码,linux系统使用较烂,于是便想使用vscode来进行。总结:个人水平不行,痛苦;

关于 IDE 的选择:

因为目前的需求只是搭建一个可以运行 C++ 下的 openCV 库的一个 IDE,所以像 VS 这种重型的工具不在考虑范围内,思前想后,觉得用 VSCode 最为合适。

个人感受:

我装配过Visual studio 2019,Visual studio 2010的软件、插件,发现这次是有史以来最难的一次,我大概花了3 天的时间,看过不下 10 篇博客,终于弄好了!!!

这篇博客会记录我搭建的必要过程,和解决问题的一些思路。

希望对大家会有所帮助~

  • 1、Visual Studio Code 配置3
  • 2、((20220318180509-y3jogk4 “MinGw 配置”))
  • 3、openCV 配置4
  • 4、 cmake 配置5
  • 5、项目配置6
  • 6、参考链接7

环境
Visual Studio Code :https://code.visualstudio.com/

openCV - 4.5.2:Releases · opencv/opencv (github.com)(本人下载.exe文件)

MinGw - 8.1.0:MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net

(本人Windows系统下载x86_64-posix-seh)

cmake - 3.23.0 :https://pan.baidu.com/s/1ZzDFHzFfCh0KH0YJD8uZwg
提取码:9518

python3.10.3:https://pan.baidu.com/s/1hTfoWRZgv-W0tA5RlI46vQ
提取码:erlx

步骤
1、Visual Studio Code 配置
安装 C/C++ 插件(C++ Intellisense 可选)

安装Cmake、Cmake tools

2、MinGw 配置

(版本)Version 选择 8.1.0
(架构)Architecture 32位cpu 选择 i686,64位cpu 选择 x86_64
(线程模式)Threads 如果使用 posix api 选择 posix,如果使用 win32 api 选择win32
(异常处理机制) Exception 有三种,根据机器情况进行选择
SJLJ (setjmp/longjmp) 兼容性好,32位或64位架构都可以使用,但速度慢
DWARF (DW2, dwarf-2) 速度比SJLJ快,但只能用于32位架构,且有bug,尽量不用
SEH (zero overhead exception) 速度很快,但只能用于64位架构
(编译版本)Build revision 选择最高的
如果你是 win10下的64位系统 建议选择 与图像上一致的选项。

配置环境变量 path :

新增 D:\MinGw\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin

检查是否配置成功:
win键 + R 输入 cmd 打开 dos 框

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存失败,源站可能有防盗链机制,建议将图片保存下来直接上传下上传(id8H3myJQwCp-1599934760068)(assets/image22-318181120-0hb0m5g.png489)(assets/image-20220318181124-0hb8m5g.png)]

若出现上诉画面,则配置成功

3、openCV 配置
将 opencv-4.5.2-vc14_vc15.exe 解压到 除C盘外的其他盘内(若是C盘,cmake 时很可能报错)

在 opencv\build\x64 路径下新建一个 文件夹(可自起,注意这里是 MingW,不是MinGw )

4、 cmake 配置
配置环境变量 path :

新增 C:\Cmake\bin(个人建议:cmake放在C盘)

运行 cmake-3.23.0-rc3-win64-x64\bin\cmake-gui.exe

如上图所示:

where is the source code: 选择:D:\Opencv\source

where to build the binaries: 选择:D:\Opencv\build\x64\Mingw

点击 configure 按钮,按照下图所示进行选择

选择 MinGW 中的 C 和 C++ 编译的exe程序

我的路径: C:\MinGw\bin

C:gcc.exe
C++ : g++.exe

注意事项

1、在列表项中找到ENABLE_CXX11这一项,对其Value值进行勾选。在最新版本情况下大概率是没有的,此时需要我们自行添加这一项,点击“Add Entry”按钮,在Name一栏中输入ENABLE_CXX11,并在Value一栏中点击勾选,后单击“OK”按钮。此时可在列表栏第一项中找到自行添加的表项。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rNe8AjBJ-1647599930069)(assets/image-20220318181802-mki2vw8.png)]

2、在列表项中找到OPENCV_ENABLE_ALLOCATOR_STATS这一项,将Value值取消勾选。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x0XduLR7-1647599930069)(assets/image-20220318181506-3jjslzw.png)]

设置完毕点击 Finish,耐心等待进度条读完,直到输出窗口看到 Configuring done。再次点击 Configure 等待进度条读完。之后点击Generate 等待进度条读完,出现 Generating done。

这时,可以看到 opencv\build\x64\MingW 的文件夹下新增了好多东西。

在dos框(windows power shell 也可以)里,利用 cd 命令 切换到 D:\opencv\build\x64\MingW,输入 minGW32-make 命令,这个时候大概花费 40 分钟左右的时间来编译,编译完成之后,输入 minGW32-make install 来完成装载。
  
最后,配置环境变量 path :

新增 D:\opencv\build\x64\MingW\bin

注意:
1、使用 cmake 时要求安装 python3(版本没有限制,比2高就行),并且python 必须配好了环境变量。

2、输入 minGW32-make 命令后,编译过程可能会失败,我之前有一次卡在了6%,可能是某一个路径有空格或中文,中途发生警告可不用管,如果发生其他错误,建议将你的所有软件的版本和我保持一致再重复以上过程,因为若是编译卡住,很可能是各个软件的版本不兼容导致,报的错误,百度下来的资料不是很多,可能较难解决。

3、如果每一步都是和以上步骤保持一致,还会出错,建议重启电脑(可能是某些环境变量没有立即生效)

4、几个环境变量总结如下图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-McmY6eC8-1647599930070)(assets/image-20220318180651-jdk6ayr.png)]

5、项目配置

新建一个专门写 c/c++ 的目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pru3xooP-1647599930070)(assets/image-20220318182147-8pquh3p.png)]

在vsCode中打开该目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ycqklXNy-1647599930070)(assets/image-20220318182218-nqr2zle.png)]

新建 opencvtest.cpp,copy如下代码

#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
using namespace cv;
int main()
{
Mat img=imread("C:\\Users\\Lenovo\\Desktop\\sad.jpg");//该路径为所选照片路径
cv::imshow("image",img);
cv::waitKey();
return 0;
}

运行下,应该会报错并提示你生成 launch.json 文件,copy下面代码复制到 launch.json 中,将 "miDebuggerPath" 改成自己的。

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [

{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.o",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:/MinGW/bin/gdb.exe",
"preLaunchTask": "g++",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
]
}

.vscode 文件夹(launch.json 的父目录)下,新建 c_cpp_properties.json,copy 如下代码,修改includePath的后三个路径为自己的,compilerPath 同理。

{
"configurations": [
{
"name": "win",
"includePath": [
"${workspaceFolder}/**",
"D:/Opencv/build/include",
"D:/Opencv/build/include/opencv2",
"D:/Opencv/build/x64/Mingw/install/include/opencv2"
],
"defines": [],
"compilerPath": "D:/MinGW/bin/gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}

.vscode 文件夹(launch.json 的父目录)下,新建 tasks.json,copy以下代码,修改 “-I” 和 “-L” 和的路径,并修改-l(例如4.5.2版本"-l", "opencv_core452",);

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"command": "g++",
"args": [
"-g",
"-std=c++11",
"${file}",
"-o",
"${fileBasenameNoExtension}.o",
"-I", "D:\\Opencv\\build\\include",
"-I", "D:\\Opencv\\build\\include\\opencv2",
"-I", "D:/Opencv/build/x64/Mingw/install/include/opencv2",
"-L", "D:\\Opencv\\build\\x64\\Mingw\\lib",
"-l", "opencv_core452",
"-l", "opencv_imgproc452",
"-l", "opencv_imgcodecs452",
"-l", "opencv_video452",
"-l", "opencv_ml452",
"-l", "opencv_highgui452",
"-l", "opencv_objdetect452",
"-l", "opencv_flann452",
"-l", "opencv_imgcodecs452",
"-l", "opencv_photo452",
"-l", "opencv_videoio452"

],// 编译命令参数
"problemMatcher":{
"owner": "cpp",
"fileLocation":[
"relative",
"${workspaceFolder}"
],
"pattern":[
{
"regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "command": "g++",
    "args": [
        "-g", 
        "-std=c++11", 
        "${file}", 
        "-o", 
        "${fileBasenameNoExtension}.o",  
        "-I", "D:\\Opencv\\build\\include",
        "-I", "D:\\Opencv\\build\\include\\opencv2",
        "-I", "D:/Opencv/build/x64/Mingw/install/include/opencv2",
        "-L", "D:\\Opencv\\build\\x64\\Mingw\\lib",
        "-l", "opencv_core452",
        "-l", "opencv_imgproc452",
        "-l", "opencv_imgcodecs452",
        "-l", "opencv_video452",
        "-l", "opencv_ml452",
        "-l", "opencv_highgui452",
        "-l", "opencv_objdetect452",
        "-l", "opencv_flann452",
        "-l", "opencv_imgcodecs452",
        "-l", "opencv_photo452",
        "-l", "opencv_videoio452"
  
    ],// 编译命令参数
    "problemMatcher":{
        "owner": "cpp",
        "fileLocation":[
            "relative",
            "${workspaceFolder}"
        ],
        "pattern":[
            {
                "regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
                "file": 1,
                "location": 2,
                "message": 3
            }
        ]
    },
    "group": {
        "kind": "build",
        "isDefault": true
    }
  }
  
quot;
,
"file": 1,
"location": 2,
"message": 3
}
]
},
"group": {
"kind": "build",
"isDefault": true
}
}

如此,就可以按 F5 运行 testOpenCv.cpp,展示一张你选择的图片

6、参考链接

(2条消息) 将 VSCode 打造成 OpenCV 的 IDE(C++,window10 1803)_我才是阿鑫的博客-CSDN博客_vscode配置opencv

VScode搭建OpenCV环境(使用CMake和MinGW-w64)_bankexinan的博客-CSDN博客_vscode配置opencv环境

最后:

在这个内卷的时代,祝大家能卷出来,加油加油加油;


  1. 引言
    因为个人需要读懂视觉代码,linux系统使用较烂,于是便想使用vscode来进行。总结:个人水平不行,痛苦; ↩︎

  2. 环境
    Visual Studio Code :https://code.visualstudio.com/ ↩︎

  3. 步骤
    1、Visual Studio Code 配置
    安装 C/C++ 插件(C++ Intellisense 可选) ↩︎ ↩︎

  4. 3、openCV 配置
    将 opencv-4.5.2-vc14_vc15.exe 解压到 除C盘外的其他盘内(若是C盘,cmak… ↩︎

  5. 4、 cmake 配置
    配置环境变量 path : ↩︎

  6. 5、项目配置 ↩︎

  7. 6、参考链接 ↩︎

举报

相关推荐

0 条评论