window10环境下:
1.1 下载后双击运行安装包
为了后面运行基于c++编程的opencv代码,需要安装C++的桌面开发
安装位置可以改为自己想装载的盘
1.2 然后点击右下角的安装(我已经安装了,所以显示的是修改)
2.1 下载opencv安装包,在opencv的官方代码仓库中找到你想要安装的版本(因为是win10平台,所以下载.exe文件)
2.2 opencv安装很容易,就是解压压缩包
我想解压到G:\CV,直接在这里修改
到G:\CV文件夹下能找到opencv了
3. 接下来设置环境变量PATH,鼠标点击左下方的搜索图案 --> 搜索:编辑系统环境变量 --> 打开 --> 环境变量
然后点击环境变量-path-编辑
然后去自己刚刚安装的opencv的目录下,找到vc15\lib的详细目录,复制后,点击新建粘贴进去
打开Visual studio 2022:
创建一个新项目
选择控制台程序创建C++程序,然后点Next
将下面的程序复制到Opencvtry.cpp中
#include
#include
#include
#include
using namespace cv;
using namespace std;
int main()
{
Mat image = Mat::zeros(300, 600, CV_8UC3);
circle(image, Point(300, 200), 100, Scalar(0, 255, 128), -100);
circle(image, Point(400, 200), 100, Scalar(255, 255, 255), -100);
imshow("Show Window", image);
waitKey(0);
return 0;
}
点击项目-Opencvtry属性:
设置opencv的包含目录路径
找到自己的opencv\build\include
的位置,我的是G:\CV\opencv\build\include
(设置好记得先点应用!不然会失效!)
连贯操作如下
设置opencv的库目录路径找到opencv\build\x64\vc15\lib
的详细目录,我的是G:\CV\opencv\build\x64\vc15\lib
过程如下
设置C++链接器的输入的附加依赖项为G:\CV\opencv\build\x64\vc15\lib\opencv_world3415.lib
,你的可能是G:\CV\opencv\build\x64\vc15\lib\opencv_world4115.lib
,需要到G:\CV\opencv\build\x64\vc15\lib
目录下查看。(这里解释一下opencv_world3415.lib和opencv_world3415d.lib的区别:如果带d,那么是用于debug的,如果是用于release那么就不要带d)
(此处如果没设置好,会报错系统找不到制定文件
LNK118 cannot open input file 'opencv_world3415.lib'
)
以上三个引用都配置好后点击确定
最后的运行效果,如果发生报错请仔细按照上述过程设置好相关路径!尤其是每次设置完要点应用,没点就关了肯定没设置好!
Win10下基于VSCode使用OpenCV需要配置VSCode、mingw、cmake、OpenCV
设备环境
OS: Windows 10 64-bit
Compiler: Mingw-w64 (Specifically, x86_64-8.1.0-posix-seh-rt_v6-rev0)
Compiler binaries' path: C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin
OpenCV version: 3.4.15
OpenCV binaries' path: C:\\opencv\\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\\x64\\mingw\\bin
1.1.在Visual Studio Code官网点击下载安装包
点击后开始下载,下载完成后按照提示进行安装:
查看官方文档Docs,左侧导航栏点击SETUP,在展开菜单点击Windows,按照右侧安装流程1-2-3依次完成,注意下面Tip的内容,可以用代码检验环境变量是否添加成功。
1.2.安装VS Code C/C++扩展(ms-vscode.cpptools)
打开 VS Code
单击边栏上的像俄罗斯方块
扩展视图图标。也可以用快捷键Ctrl+Shift+X
搜索C++,搜索后,找到如下所示的扩展名,然后单击安装进行安装
C/C++安装好后,依次搜索 Chinese(中文插件在时需要重启)、Code Runner
安装好后的样子:
VS Code的官网中也有相关详细的教程
建议使用Mingw-w64,vs code官方文档建议通过MSYS2来安装Mingw-w64。进入MSYS2官网,
按照指引:
1.下载msys2-x86_64-20220603.exe
然后双击打开然后点下一步开始安装(注意文件夹的命名要求,尽量短,不要有空格之类的特殊符号、不要有中文,我安装到G:\msys64
):
安装好后启动程序:
我们需要借助这个软件安装一些工具和 mingw-w64 GCC 为后面vscode编译c++程序做准备:
输入命令
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
然后输入回车
安装过程:
如果在运行过程中出现error,就重复执行一下上述命令
然后将 MinGW 编译器添加到您的路径
使用以下步骤将 Mingw-w64bin文件夹的路径添加到 Windows环境变量:PATH
在 Windows 搜索栏中,键入“设置”以打开您的 Windows 设置。
为您的帐户搜索编辑环境变量。
Path在您的用户变量中选择变量,然后选择编辑。
选择新建并将 Mingw-w64 目标文件夹路径\mingw64\bin添加到系统路径。具体路径取决于您安装的 Mingw-w64 版本以及安装位置。如果您使用上述设置安装 Mingw-w64,则将其添加到路径:C:\msys64\mingw64\bin.
选择确定以保存更新的 PATH。您将需要重新打开任何控制台窗口以使新的 PATH 位置可用。
我的路径是G:\msys64\mingw64\bin
你的路径需要自己查看一下!
接下来设置环境变量PATH,鼠标点击左下方的搜索图案 --> 搜索:编辑系统环境变量 --> 打开 --> 环境变量
然后点击环境变量-path-编辑
添加过程
检查是否配置成功
按Win+R,运行cmd
输入gcc
显示
gcc: fatal error: no input files
compilation terminated.
☆ 提示 no input files 这是正常的
如果提示“不是内部命令或外部命令”或者“无法将 “gcc” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称”那就说明环境变量没配置好
然后输入 gcc -v
显示
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=G:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-12.1.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/include --libexecdir=/mingw64/lib --enable-bootstrap --enable-checking=release --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts --enable-libstdcxx-time --disable-libstdcxx-pch --enable-lto --enable-libgomp --disable-multilib --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev2, Built by MSYS2 project' --with-bugurl=https://github.com/msys2/MINGW-packages/issues --with-gnu-as --with-gnu-ld --disable-libstdcxx-debug --with-boot-ldflags=-static-libstdc++ --with-stage1-ldflags=-static-libstdc++
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.1.0 (Rev2, Built by MSYS2 project)
说明gcc是安装成功了的
这里也可以根据官网教程
按Win+R,运行cmd,分别输入
g++ --version
gdb --version
说明是安装成功了的。然后可以来验证一下c++环境,即编译器是否可以正常运行:
1.在任意位置新建一个文件夹,例如,在D盘新建一个vs code文件夹D:\佳豪师兄项目\配置代码\hello_world
2.打开visual studio code
3.打开刚刚创建的文件夹,我的是D:\佳豪师兄项目\配置代码\hello_world
以上三步也可以通过命令行实现
核心输入是:
1.按Win+R,运行cmd
2.依次输入
C:\Users\52595>D: //注意,这是是因为我想要进入D盘!你可以进入G盘
D:\>cd D:\佳豪师兄项目\配置代码//注意,D:\佳豪师兄项目\配置代码这个文件夹是我之前就创建了的
D:\佳豪师兄项目\配置代码>mkdir HelloWorld
D:\佳豪师兄项目\配置代码>cd HelloWorld
D:\佳豪师兄项目\配置代码\HelloWorld>code .
D:\佳豪师兄项目\配置代码\HelloWorld>
细节
1.按Win+R,运行cmd
2.输入盘符,例如我想从C盘进入D盘,☆就输入:D:
显示如下:
C:\>D:
D:\>
3.继续输入(这里我想进入到D:\佳豪师兄项目\配置代码)
☆我就输入:cd D:\佳豪师兄项目\配置代码
D:\>
D:\>cd D:\佳豪师兄项目\配置代码
D:\佳豪师兄项目\配置代码>
到达这个目录后,我创建一个名为HelloWorld的文件夹
输入:mkdir HelloWorld
然后进入这个文件夹
输入:cd HelloWorld
显示如下:
D:\佳豪师兄项目\配置代码>mkdir HelloWorld
D:\佳豪师兄项目\配置代码>cd HelloWorld
D:\佳豪师兄项目\配置代码\HelloWorld>
然后用visual studio code打开这个文件夹
输入:code .
整个过程
该文件夹D:\佳豪师兄项目\配置代码\HelloWorld
成为您的“工作区”,现在使用文件资源管理器中“新建文件”按钮或“文件” > “新建文件”命令创建一个新文件helloworld.cpp。
添加Hello World源代码
#include
int main()
{
std::cout << "Hello World" << std::endl;
}
按Ctrl+S保存文件。您还可以通过选中主文件菜单中的自动保存来启用自动保存以自动保存文件更改。
//使用 C++ 输出字符串 "Hello, World!",只是一个简单的入门实例,
//需要使用 main() 函数及标准输出 cout:
#include
using namespace std;
int main()
{
cout << "Hello, World!";
return 0;
}
现在我们有了一个简单的 C++ 程序,让我们构建它。从主菜单中选择终端>运行构建任务命令 ( Ctrl+Shift+B )。
这将显示一个带有各种编译器任务选项的下拉列表。如果你使用像 MinGW 这样的 GCC 工具集,你会选择C/C++: g++.exe build active file(不要选错了,否则后面生成的文件将无法运行)。
vscode将编译helloworld.cpp并创建一个名为helloworld.exe的可执行文件,该文件将出现在文件资源管理器中。
运行 刚刚生成的helloworld.exe程序:在命令提示符或新的 VS Code 集成终端中,通过键入“.\helloworld”
来运行您的程序。
如果一切设置正确,您应该会看到输出“Hello World”。
进入CMake官网,点击右侧download
Binary distributions: Platform Windows x64 Installer: cmake-3.24.0-windows-x86_64.msi
若选择下载安装包方式(cmake-3.24.0-windows-x86_64.msi),则在安装过程中需要勾选 添加环境变量 选项
若选择下载压缩包方式(cmake-3.24.0-windows-x86_64.zip),则需要手动添加环境变量
等待下载完成后完成安装
安装过程如下(在安装过程中让软件帮你添加路径,可参考这个教程(背景有点绿…见谅))
进入opencv官网点击 Library,然后下载你想要的版本的Windows平台的包
我下载了OpenCV – 3.4.16的windows平台程序:opencv-3.4.16-vc14_vc15.exe
下载完成之后点开opencv-3.4.16-vc14_vc15.exe
解压,
解压之后进入如下目录新建一个文件夹MinGW用来存放待会用mingw-w64编译opencv产生的的文件(下面的vc14和vc15是用x64架构下别的版本的编译器(MSVC)编译出的库文件)
我在G:\CV_FORVSCODE\opencv\build\x64
路径下新建了一个文件夹MinGW
接下来要用CMake辅助编译,找到cmake-gui.exe打开,填入自己电脑中oepncv的源程序位置G:/CV_FORVSCODE/opencv/sources
和刚创建的MinGW文件夹的绝对地址G:\CV_FORVSCODE\opencv\build\x64\MinGW
,点击Configure。
弹出选项框,选择Specify native compilers,点击下拉箭头找到MinGW Makefiles,点Next
点击Next,编译器选择,C选择MinGW-w64的bin目录下gcc.exe(我的位置是G:/msys64/mingw64/bin/gcc.exe
),C++则选择g++.exe(我的位置是G:/msys64/mingw64/bin/g++.exe
)。
点Finish,然后一下自动配置,然后等待编译
编译过程中,我有报错,说没找到python2
然后我把G:\CV_FORVSCODE\opencv\build\x64\MinGW
下的MinGW
文件夹中刚刚编译的内容全部删掉了
然后把电脑同时安装了python2和python3,并且为python3装了numpy库
Microsoft Windows [版本 10.0.19044.1889]
(c) Microsoft Corporation。保留所有权利。
C:\Users\52595>python3 -m pip install numpy
Collecting numpy
Downloading numpy-1.23.2-cp310-cp310-win_amd64.whl (14.6 MB)
---------------------------------------- 14.6/14.6 MB 2.6 MB/s eta 0:00:00
Installing collected packages: numpy
Successfully installed numpy-1.23.2
然后重复一次:3.2 基于MinGW用cmake编译opencv的过程(如果你没报错,那就不用重复了)
然后的效果是:
配置选项框里会出现一系列name:value键值对,
勾选 WITH_OPENGL、 ENABLE_CXX11
不勾选 WITH_IPP、 ENABLE_PRECOMPILED_HEADERS
其余选项默认即可,点击Generate,等待进度条读完
打开cmd,cd到MinGW目录下,输入minGW32-make -j 8开始编译。-j为可选参数,-j 8为8线程编译,前提是电脑为8核处理器,根据自己配置可选择-j 4或者不加(即默认单核编译)。编译进度到100%后,在cmd输入minGW32-make install 创建installl文件夹完成装载,完成后,可以在刚新建的MinGW文件夹下面找到install文件夹,里面即是待会要用到的所有的链接库,为了能找到这些链接库,我们需要将…/MinGW/install/x64/mingw/bin添加到系统的环境变量中。
进入任务管理器CTRL + Shift + ESC
,查看自己的CPU型号,
1.按Win+R,运行cmd
2.依次输入
C:\Users\52595>G:
G:\>cd G:\CV_FORVSCODE\opencv\build\x64\MinGW//注意,这是是因为我想要进入D盘!你可以进入G盘
G:\CV_FORVSCODE\opencv\build\x64\MinGW>minGW32-make -j 8//注意,D:\佳豪师兄项目\配置代码这个文件夹是我之前就创建了的
然后编译到35%报错
[ 35%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/trace.cpp.obj
cc1plus.exe: some warnings being treated as errors
minGW32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:1033: modules/core/CMakeFiles/opencv_core.dir/src/persistence_base64.cpp.obj] Error 1
minGW32-make[2]: *** Waiting for unfinished jobs....
minGW32-make[1]: *** [CMakeFiles\Makefile2:2004: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
minGW32-make: *** [Makefile:165: all] Error 2
为了让VSCode能够找到我们刚刚编译出的opencv的库文件,我们需要在原有的基础上对配置文件(task.json, launch.json, c_cpp_properties.json)做出一定的调整。在对VSCode官方文档进行学习之后,我们已经了解了这3个配置文件各自的作用,显然在debug的时候并不会用到新增的库文件,所以 launch.json不用修改,但是我们需要在编译和 智能感知 环节,让VSCode找到我们的库函数,所以需要分别修改task.json中传入参数args部分和c_cpp_properties.json中includePath部分,我将修改后的两个文件整个附在了下面,请读者着重关注上述的两个部分中关于opencv的改动。
我的G:\CV_FORVSCODE\opencv\build\x64\MinGW
折腾了半小时搞不出来,过几天在弄,先用vs2022
2022.8.22又折腾了两小时,尝试了很多方法,包括下载G:\CV\opencv\build\x64\MinGW\3rdparty\ffmpeg
…估计有可能是设备或者软件版本问题,不折腾了
区别1:visual studio是一个集成的开发环境,功能相对来说比较完整;而vscode是一款代码编辑器。Visual Studio只能在Windows和mac之上运行;而VSCode跨平台支持Windows、Mac以及Linux。
PS:
Visual Studio是一个集成的开发环境,相对来说比较完整,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
Visual Studio Code(vscode)是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux。
区别2:跨平台运行能力不一样
Visual Studio 各种功能只能在 Windows 和 macOS(Mac OS X )之上运行,不能跳跃各平台编辑。
VSCode是一款真正的跨平台编辑器,可以在用户习惯的平台上使用,而不是非要迁徙到 Windows上。
依次打开:文件–首选项–设置 然后搜索“auto guess”勾选项,自动猜测字符集编码方式并解码,然后显示正常
首先进行注释:选中需要注释的代码,然后先进行CTRL+K键结合,然后进行CTRL+C就可以注释选中的代码。
取消注释就是:选中需要取消注释的代码,然后及逆行CTRL+K键,然后进行CTRL+U就可以取消注释选中的代码。
扩展内容
如何在 Ubuntu OS 的 Visual Studio 代码中安装 OpenCV for C++
VScode发生错误官方文档解决方案