首页 > 编程语言 >Visual Studio部署C++环境下OpenCV库

Visual Studio部署C++环境下OpenCV库

时间:2024-03-06 10:14:55浏览次数:28  
标签:路径 C++ OpenCV Visual 文件夹 Studio 版本

  本文介绍在Visual Studio 2022中配置、编译C++计算机视觉库OpenCV的方法。

1 OpenCV库配置

  首先,我们进行OpenCV库的下载与安装。作为一个开源的库,我们直接在其官方下载网站中进行下载即可;如下图所示,我们首先选择需要下载的操作系统。

image

  随后,即可在弹出的新界面中自动开始OpenCV库的下载。

  下载完毕后,可以得到OpenCV库的.exe格式文件。

  我们双击这一.exe格式文件,即可开始OpenCV库的文件提取过程,也就相当于是安装过程;其中,我们首先需要选择OpenCV库安装的路径。

  随后,即可开始OpenCV库的文件提取。

  OpenCV库文件提取完毕后,会得到如下所示的文件夹。这里建议将这一文件夹放在纯英文路径下。

  接下来,基于Windows电脑环境变量(用户变量、系统变量)的修改提到的方法,配置OpenCV库相关的环境路径。其中,需要在“系统变量”的“Path”中进行操作。

  如下图所示,我们将OpenCV库中...\build\x64\vc15\bin路径放入“系统变量”的“Path”中,在我这里这一路径就是C:\opencv\build\x64\vc15\bin

  其中,需要注意的是,OpenCV库中一般会有两个VC版本对应的文件夹,例如我这里下载的4.6.0版本的OpenCV库,其就有vc14vc15两个文件夹;具体选择哪一个文件夹中的bin文件夹,需要结合我们的Visual Studio软件版本来判断——一般的,只要Visual Studio软件版本是2017年及之后的版本(例如我这里就是Visual Studio 2022),那么就选择vc15这个文件夹;如果Visual Studio软件版本是2015年的,那么就选择vc14这个文件夹;如果Visual Studio软件版本是2015年之前更早的版本,那么最好就更换老版本的OpenCV库,从而找到适配的VC版本。

2 Visual Studio环境配置

  接下来,我们基于安装Visual Studio的详细流程提到的方法,新建一个项目,其名称与路径大家可以自行设置。

  随后,按照上述文章中的方法,新建一个.cpp格式的源文件。

  接下来,按照如何在Visual Studio新C++项目中调用之前配置过的库?提到的方法,分别进行OpenCV库的附加包含目录附加库目录附加依赖项的配置。

  首先,将附加包含目录配置为OpenCV库的C:\opencv\build\includeC:\opencv\build\include\opencv2等2个路径;如下图所示。

  随后,将附加库目录配置为OpenCV库的C:\opencv\build\x64\vc15\lib这一路径;如下图所示。这里需要注意,具体使用哪一个VC版本对应的文件夹路径,还是和前文提到的一样,依据大家的Visual Studio版本来确定。

  最后,我们找到OpenCV库的C:\opencv\build\x64\vc15\lib文件夹,可以看到其中有两个.lib格式的文件。

  其中,如果我们需要配置Debug版本的OpenCV库,那么就选择名称最后面带有字母d.lib格式文件(也就是上图中选中的那一个文件);如果需要配置Release版本的OpenCV库,那么就选择名称最后不带有字母d.lib格式文件。随后,将这一文件的路径复制到附加依赖项中;如下图所示,我这里准备配置Debug版本的OpenCV库,因此就选择了名称最后面带有字母d.lib格式文件。此外,这里还是一样的,具体使用哪一个VC版本对应的文件夹路径,依据大家的Visual Studio版本来确定即可。

3 代码测试

  通过上述步骤,我们完成了OpenCV库的配置工作;此时可以通过一些简单的代码来测试OpenCV库配置是否正确。

  例如,可以通过以下代码来测试OpenCV库的配置情况。其中,pic_path是一个指向图片文件的路径,大家可以基于自己电脑中的任何一张图片文件来修改这一路径。

#include <opencv2/opencv.hpp>

using namespace cv;

int main() {
	const char* pic_path = "E:/99_Other/公众号与博客/03_图库/Amos2.png";
	Mat pic = imread(pic_path, 1);
	imshow("My Picture", pic);
	waitKey();
	return 0;
}

  随后,在Visual Studio中运行上述代码。

  运行代码后,如果出现如下所示的情景,即我们通过pic_path指定的图片可以正常显示出来,说明OpenCV库的配置没有问题。

  至此,大功告成。

标签:路径,C++,OpenCV,Visual,文件夹,Studio,版本
From: https://www.cnblogs.com/fkxxgis/p/18055869

相关文章

  • 基于c++的排雷小游戏二次开发
    源代码地址https://blog.csdn.net/weixin_45906253/article/details/121237647?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-9-121237647-blog-129464051.235^v43^pc_blog_bottom_relevance_base7&......
  • (持续更新)c++引用
    引用的基本使用作用:给变量起别名语法:数据类型&别名=原名图示:代码://引用基本语法//数据类型&别名=原名inta=10;int&b=a;//创建引用//结果:a=10b=10cout<<"a="<<a<<endl;cout<<"b="<<b<<......
  • C++ 释放vector内存
    释放vector内存的方法有多种,具体取决于使用vector的方式以及释放内存的目的。下面列举几种常见的释放vector内存的方法:1、清空vector调用vector的clear()方法可以清空vector中的元素,但是并不会释放vector所占用的内存空间。这意味着,如果之后还需要往vector中添加元素,ve......
  • C++ 如何快速清空vector以及释放vector内存?
    1、为什么需要主动释放vector内存vector其中一个特点:内存空间只会增长,不会减小,援引C++Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元......
  • C++ 职工信息管理系统项目的二次开发 2252423 ywx
    来源:同学大二下的期末大作业:网上购书系统项目。运行环境:VisualStudio2022①项目结构:②运行结果截图:主菜单界面:功能选择界面:工资总额输出界面:平均工资输出界面:显示输出界面:增加正式员工界面:增加临时员工界面:修改数据界面:③主要问题:查询功能未完善,有时会出现......
  • 基于c/c++的公司职工管理系统软件的二次开发
    引言:经过在网络上的广泛搜索和比较,我了解了一款基于C/C++的公司职工管理系统软件,这款软件在基本功能方面表现相当完善,能够满足日常的使用需求。然而,在实际使用过程中,我也发现它存在一些问题和不足,所以我决定对该软件进行二次开发。原始代码:点击查看代码**main.cpp**#include......
  • 超市管理系统C++
    超市管理系统(摘自大一小学期同学作品)一、C++语言程序设计------《超市管理系统设计》问题分析这个超市商品管理系统的主要功能是为超市的管理层提供货物查询及银行转帐货物管理服务,方便超市管理层工作,提高管理层的服务质量和服务效率。超市商品的信息必须经由各部门及人事初及......
  • 编译后的opencv-cuda任意位置任意机器的移植(python版本
    测试环境:OS:Windowspython:3.10.11amd64opencv:4.9.0准备:复制build目录下面的install到目标路径,例如:d:\opencv-cuda490\install复制python目录下Lib\site-packages\cv2到目标路径,例如:d:\3.10.11-embed-opencv-cuda\Lib\site-packages修改:假如cv2的目标路径:......
  • 从Python语言的角度看C++的指针
    技术背景从一个PythonCoder的角度来说,其实很羡慕C++里面指针类型的用法,即时指针这种用法有可能会给程序带来众多的不稳定因素(据C++老Coder所说)。本文主要站在一个C++初学者的角度来学习一下指针的用法,当然,最好是带着一定的Python基础再去学习C++的逻辑,会更容易一些。内存地址赋......
  • C++面试,实现memcpy,strcpy这2个函数的功能
    `strcpy`和`memcpy`都是用于内存复制的函数,但它们之间有几个关键的区别:1.**复制的对象**:-`strcpy`主要用于复制字符串,它将从源字符串的起始位置开始复制字符,直到遇到源字符串的空字符('\0'),然后将空字符也复制到目标字符串中,表示字符串的结束。-`memcpy`则是通用的内存复......