首页 > 编程语言 >【C++】【OpenCV】Visual Studio 2022 配置OpenCV

【C++】【OpenCV】Visual Studio 2022 配置OpenCV

时间:2024-02-24 09:05:28浏览次数:30  
标签:路径 C++ OpenCV Visual Studio include cv

记录一下Visual Studio配置OpenCV过程以及出现的问题

本机环境:

1、Windows10

2、Visual Studio 2022

 

配置步骤:

1、下载OpenCV(Releases · opencv/opencv · GitHub)在GitHub上下载最新的版本

 2、双击打开,然后选择路径后,点击Extract

 3、等待提取完成后在Visual Studio中新建一个C++空白项目,并在源文件中添加一个c++文件

 4、这边按照参考的blog进行环境配置,右击自己创建的空白项目,然后点击最后一行属性

 5、依次点击【配置属性】-【C/C++】-【常规】-【附加包含目录】-【编辑】,然后填入安装(你安装的路径)...\opencv\build\include,懒得写的可以直接复制路径

 

 6、配置链接器,【链接器】-【常规】-【附加库目录】-【编辑】,然后填入安装(你安装的路径)...\opencv\build\x64\vc16\lib,

切记,这一步是vc16下的lib文件夹,不是bin文件夹,不然会导致链接失败无法运行程序

 

 7、【链接器】-【输入】-【附加依赖项】-【属性】,第六步已经填入了路径,所以这一步只需要添加该路径下的文件名即可,我这边Release和Debug版都写进去了

 8、根据参考blog我没有添加环境变量,而是将dll文件粘到了项目中(你的项目路径)...\x64\Release | Debug

 

 切记切换成Release版本,我这边Release可以正常运行,但是debug报错,也就不管那么多,先用着。

 

测试代码:

 1 #include<iostream>
 2 #include <opencv2/core/core.hpp>
 3 #include<opencv2/highgui/highgui.hpp>
 4 #include<opencv2/imgproc.hpp>
 5 using namespace std;
 6 
 7 int main() {
 8     cv::Mat img = cv::imread(R"(C:\Users\Desktop\pppp\MR\1.jpg)");
 9     cv::imshow("test", img);
10     cv::waitKey(0);
11     cv::destroyAllWindows();
12     return 0;
13 }

 

 

参考博客:

VS配置OpenCV开发环境(c++):How & Why - tyusr - 博客园 (cnblogs.com)

标签:路径,C++,OpenCV,Visual,Studio,include,cv
From: https://www.cnblogs.com/vangoghpeng/p/18030685

相关文章

  • C++ 令人无语/好用的语法合集
    此贴用来总结一些傻逼C++语法,或者坑了我很久的写法。1、(坑)重载>,<,==时,千万不要使用pair为基的typedef!!!!!!pii的max不受你的重载影响,它自己有自己的max,然后typedef和define是相同的,基本可以看做直接替换,不会对作用域/命名做区分。2、(坑)lower_bound(..,..,{x......
  • 如何学习PYTHON(python和c++哪个难学)
    1.如何学习PYTHONPython是一门简单易学的编程语言,但想要真正掌握它需要花费不少时间和精力。我的建议是先从Python基础开始学习,掌握基本语法和常见数据结构,再逐步深入学习高级特性和应用场景。 在学习Python的过程中,https://www.fuligou8.com/noking/4006.html我们可以通过阅......
  • Windows系统下Visual Studio 2019中C++静态、动态库的封装、使用以及遇到的问题
    本篇文章主要是因为本人需要用到静、动态库的封装和使用,下面的链接关于静、动态库的封装和使用描述的非常详细:http://t.csdnimg.cn/HyTD4在按照上述封装好静、动态库之后,在VisualStudio2019使用过程中出现了“test.obj:errorLNK2019:无法解析的外部符号_createInterface......
  • C++的箭头运算符
    以前学类的时候,一个指针指向类的实例,当我们想通过指针访问某些类的成员的时候,书上直接告诉你,使用->来访问这些成员,不能用.运算符。我以前也是默默接受了这个观点,平时也没细想,今天才知道是怎么回事。string*p=string("hello");*p.empty();//错误。会先执行p.empty(),之后再......
  • 15. 三数之和C++
    先排序,再暴力找就好了。如果当前元素大于0或者前两个元素和大于0就不用找了。然后结果超时了。然后借鉴了双指针的解法,发现双指针其实就是把单向循环优化成双向循环。 classSolution{public:vector<vector<int>>threeSum(vector<int>&nums){sort(nums.beg......
  • C++多线程 第九章 高级线程管理
    第九章高级线程管理注意:本章内容由于教材本身问题,例子存在较大问题.请自行在理解基础上重新设计.在大多数系统上面,为每个可以与其他任务并行执行的任务分配一个单独的线程是不切实际的.但线程池允许尽量充分利用硬件提供的并发性.在线程池帮助下,可以被并发执行的任务......
  • Mounriver工程转为C++(转载)
    注:文章为内部转载。1、右键要转换为C++的工程new->other,按下图选择点击next,按下图配置,点击FINSH。2、工程转换为C++之后,原有的设置都会变成默认的,需要重新添加。上图添加头文件路径。上图添加链接脚本路径。上图使用默认的桩函数。3、添加C++初始化函数,在启动文件调......
  • C++动态内存分配探秘:new与malloc的关键差异及实例解析
     概述:在C++中,new和malloc均用于动态内存分配,但存在关键差异。new是C++运算符,能调用构造函数,返回类型明确;而malloc是C函数,仅分配内存,需手动类型转换。示例源代码生动演示了它们在构造函数调用和类型信息方面的不同。在C++中,new 和 malloc 都用于动态内存分配,但它们之间......
  • C++强制类型转换详解:四种操作符解析与实例演示
     概述:C++中的强制类型转换是实现数据类型间转换的关键机制,包括static_cast、dynamic_cast、const_cast和reinterpret_cast四种。这些操作符适用于不同的场景,通过实例源代码详细阐述了它们的使用方法和步骤。在C++中,强制类型转换是将一个数据类型的值转换为另一个数据类型的过......
  • C++ 第四节课 C和C++指针的区别 C的宏函数和C++内联函数的优缺点
    #include<iostream>//定义一个宏函数#defineADD(x,y)x+y;//宏函数具有速度快等特点但是写代码有些业务比较繁琐,所以C++中使用了内联函数优化//在定义函数前面添加一个inline把这个函数变成内联函数inlineintmax(intx,inty){returnx>y?x:y;}usi......