opencv C++ Windows10 VSCode配置环境

本篇文章是在Windows10下使用MinGW-w64、cmake、VSCode配置opencv环境。

起因是有一个小作业需要使用C++进行图像处理,要使用到opencv。一个小作业而已,用VSCode码就行,不想麻烦去下载VS,于是百度配环境,发现在Windows10上有点麻烦,遂成功后记录一下,方便以后配环境的同学。(Windows下配环境是真的心累)

参考博客

基本参考这篇博客
将 VSCode 打造成 OpenCV 的 IDE(C++,window10 1803)

软件版本及下载路径

但是我使用的各软件版本不一样,发现最后也成功了。版本如下:

安装流程

安装大致思路(个人理解,仅供参考,不一定正确):

  1. 下载MinGW-w64,配C++环境。
    把压缩包解压,然后配对应bin目录的环境变量即可,命令行检查是否安装成功g++ --versiongcc --version
  2. 下载cmake,编译opencv源码(编译成功的文件才是我们需要的)。
    这里我是使用chocolatey下载的,很方便。之后配cmake安装路径的bin环境变量。命令行检查cmake --version
  3. 下载opencv源码,解压,文件路径自定义,这里我是D:\opencv
  4. 具体操作看参考的博客方法(图文并茂),打开cmake的gui界面,
    选择要编译的源码路径D:\opencv\sources,
    和编译后文件存储的位置D:\opencv\build\x64\[folder]\bin
    ([folder]为自己在D:\opencv\build\x64下新建的文件夹名)
    cmake编译这里我是直接全部默认,没有去更改打勾属性,有其他博客里写道要更改打勾选项,这里自行选择。反正失败了可以把源码一删,重新来一次。
  5. 切换到对应位置打开cmd,键入命令minGW32-makeminGW32-make install,很慢耐心等待。添加opencv编译完成的bin环境变量
  6. VSCode安装支持C\C++扩展,建立工作区,写launch.json和tasks.json、c_cpp_properties.json。具体看开头的参考教程链接。这里我把参考博客中tasks.json里的.o文件改成.exe,对应launch.json里也要改成.exe文件。以及对应的opencv版本号要改成自己安装的opencv版本。

环境变量配置

除了mingw-w64和cmake另外的环境变量

  • D:\opencv\build\x64\[folder]\bin
    (opencv环境变量,[folder]为cmake编译opencv\sources的目标文件夹)
  • D:\opencv\build\include
    我第一天没有这个环境变量,结果VScode一导入opencv2/opencv.hpp包,程序就直接闪退。加入之后,重启就正常运行了。

测试代码

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

using namespace std;
using namespace cv;

int main(){
    cv::Mat img = cv::imread("./test.png");

    if (img.empty()){
        cout << "empty" << endl;
        system("pause");
        return -1;
    }

    cv::namedWindow("Example1", cv::WINDOW_AUTOSIZE);
    cv::imshow("Example1", img);
    cv::waitKey(0);
    cv::destroyWindow("Example1");

    return 0;
}

区别

基本流程和参考的博客 将 VSCode 打造成 OpenCV 的 IDE(C++,window10 1803)一样(这里非常感谢博主)。
但完全按照该博主教程,我电脑上失败了,也不知道什么原因,很玄学。这里说一下自己的踩坑经历以及和博主不同的地方,方便大家,以减少配环境的时间成本。
坑:

  1. 我之前安装的是MinGW,按照该教程配,cmake那里编译有问题(编译完,对应bin文件夹下没有文件)。遂下载安装MinGW-w64,编译正常。
  2. VSCode的C\C++插件一定要运行,才可以来运行编译.cpp程序。

不同:

  1. VSCode的launch.json和tasks.json里-o配置程序编译输出文件后缀改为.exe。
  2. tasks.json对应的导入opencv文件名要改成自己的版本号。
  3. 环境变量我另加了一个,D:\opencv\build\include
发布了4 篇原创文章 · 获赞 0 · 访问量 249

猜你喜欢

转载自blog.csdn.net/weixin_42421992/article/details/104364529