Windows 10 下 vscode配置 opencv

Releases - OpenCV 官网下载对应版本的opencv windows package,本文下载opencv4.5.5 。

提前安装好VScode MinG64和cmake-gui ,可参考

Windows 10 配置Vscode和MinGW64_奇洛abs的博客-CSDN博客 ,本文使用cmake-gui 3.26。不同版本的opencv可能会遇到编译bug,大多原因是opencv版本、cmake-gui版本、配置configure时候的勾选的问题。

安装opencv

运行opencv-4.5.5-vc14_vc15.exe 解压到指定路径,在 \build\x64\ 下创建MinGw文件夹

运行cmake-gui,配置 文件路径D:/opencv/sources 编译生成的路径D:/opencv/build/x64/MinGw

 配置编译器

不同版本此处的勾选不同,如老版本需要勾选ENABLE_CXX11,此时已经search不到该选项

勾选:
WITH_OPENGL
BUILD_EXAMPLES
 
不勾选:
WITH_IPP
WITH_MSMF

执行configure,报红出错,多点几次Configure,直到没有红色为止。

 点击generate

 win+r 打开cmd,进入MinGW目录

执行如下指令,编译opencv

MinGw32-make

注意:若使用多线程 minGw32-make j4或j8有可能因为线程指定不明报错,可以多编译几次。

 注意:编译出现PROTBUF错误时,在cmake-gui里将BUILD_PROTOBUF、PROTOBUF_UPDATE_FILES和WITH_PROTOBUF的VALUE勾选取消掉。

编译成功后,执行

minGW32-make install

安装opencv到build/x64/MinGw/install

安装opencv_contrib

将opencv_contrib解压到opencv 目录下,下载对应的opencv_contrib版本,地址为:

Index of /opencv/opencv_contrib/

 将opencv_contrib的module文件夹写入OPENCV_EXTRA_MODULES_PATH

重新configure,generate,编译和安装。

测试opencv+vscode

用双线性插值处理图像,创建文件夹test,创建testopencv.cpp编辑一段代码:

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

int main(){
    cv::Mat img = cv::imread("testopencv.png");
    cv::Size dsize = cv:: Size(round(0.5 * img.cols), round(0.5 * img.rows));
    resize(img, img, dsize, 0, 0, cv::INTER_LINEAR);
    cv::imshow("testopencv", img);
    cv::waitKey(5000);
    return 0;
}

添加launch.json、task.json和c_cpp_properites.json做如下修改。

F5调试或者运行调试自动生成launch.json。生成launch.json后修改如下,其中miDebuggerPath写入正确的本地mingw64的gdb.exe路径。program为生成的exe路径和名称,一般与文件名相同。preLaunchTask需和tasks.json中label填入相同内容。

{

    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成调试活动文件"
        }
    ]
}

生成并编辑Tasks.json文件有两种生成方法:

1. 在.vscode 文件夹(launch.json 的父目录)下,新建 Tasks.json文件;
2. 按Ctrl+Shift+P打开命令面板,输入>Task,选择 Configuration Task即可创建Tasks.json文件。

tasks.json如下,其中在args里写入opencv头文件路径、库文件路径和lib依赖库。

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成调试活动文件",
            "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-I", "D:\\opencv\\build\\include",
                "-L", "D:\\opencv\\build\\x64\\MinGw\\lib",
                "D:\\opencv\\build\\x64\\MinGw\\lib\\libopencv_*"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

生成并编辑c_cpp_properties.json文件有两种生成方法:

1. 在.vscode 文件夹(launch.json 的父目录)下,新建 c_cpp_properties.json文件;
2. 按Ctrl+Shift+P打开命令面板,输入>c/c++ Edit,选择Edit Configuration(JSON)即可创建c_cpp_properties.json文件。

c_cpp_properites.json中按照需要填写配置,如这里填写cStandard为c17,cppStandard为gn++17,在头文件加入opencv头文件和正确的gcc路径。

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:\\opencv\\build\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\msys64\\mingw64\\bin\\gcc.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

 最后得到结果:

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值