当前位置: 首页 > news >正文

win10 + VS2022 安装opencv C++

最近需要用到C++ opencv,看了很多帖子都需要自己编译opencv源码。为避免源码编译,可以使用VS来配置opencv C++。下面是主要过程:

目录

1. 从官网下载 opencv - Get Started - OpenCV

 2. 点击这个exe文件进行安装

3. 配置环境变量

4. VS中的项目配置

4.1 打开VS,创建一个console 项目

4.2 在属性管理器中右键 进行属性配置(如果看不到属性管理器,可以从 视图--> 其他窗口 --> 属性管理器,这样可以调出属性管理器)

 4.3 头文件、库文件、链接器的配置

5. OK,运行自己一个小程序试试吧


1. 从官网下载 opencv - Get Started - OpenCV

现在opencv做的很友好了,可以选择不从源码编译的exe包

 下载完成是这样的一个文件:

 2. 点击这个exe文件进行安装

最后生成一个opencv文件夹。里面有两个子文件夹:Build 和 sources

 其中Build就是编译好的文件夹。其中包含一些子目录:

重点关注3个目录:

  • opencv / build / include
  • opencv / build / x64 / vc16 /bin
  • opencv / build / x64 / vc16 /lib

下面就是需要进行的配置。

3. 配置环境变量

在配置面板-》环境变量 在path中添加 opencv / build / x64 / vc16 /bin 目录

PS:为保险起见,我同时添加了用户的path 和 系统的path 

4. VS中的项目配置

4.1 打开VS,创建一个console 项目
4.2 在属性管理器中右键 进行属性配置(如果看不到属性管理器,可以从 视图--> 其他窗口 --> 属性管理器,这样可以调出属性管理器)

 4.3 头文件、库文件、链接器的配置

在 VC++项中,配置 包含的目录(即头文件目录)、和 库目录 

  • opencv / build / include
  • opencv / build / x64 / vc16 /lib

 在 链接器中 -> 输入 -> 附加依赖项 中 添加 lib文件夹下的opencv_world文件

 注意:

在lib文件夹下有两个文件,其中.lib文件是release版本, ***d.lib文件时debug版本。

这两个不能同时添加,否则会出现版本冲突而导致 一些错误(个人踩了好长时间的坑,教训社科)比如
C:\Users\31408\AppData\Local\Temp\cc6IKGp6.o: In function `main':
D:/mydocs/git_src/test_opencv/main.cpp:34: undefined reference to `cv::imread(std::string const&, int)'
D:/mydocs/git_src/test_opencv/main.cpp:39: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
D:/mydocs/git_src/test_opencv/main.cpp:40: undefined reference to `cv::waitKey(int)'
D:/mydocs/git_src/test_opencv/main.cpp:34: undefined reference to `cv::Mat::~Mat()'
D:/mydocs/git_src/test_opencv/main.cpp:34: undefined reference to `cv::Mat::~Mat()'
collect2.exe: error: ld returned 1 exit status

 如果使用的是debug版本,添加debug库文件;如果是release版本,添加release库文件。具体是的debug 和 release , 是由VS上编译时选择的:

5. OK,运行自己一个小程序试试吧

/**Includes*********************************************************************/
#include <iostream> 
#include <opencv2/opencv.hpp>
/**namespace********************************************************************/
using namespace cv;
using namespace std;int main()
{//载入图片  const string file = "D:\\mydocs\\done_docs\\1.png";Mat img = imread(file);if (img.empty()){fprintf(stderr, "Can not load image ");return -1;}// 创建一个名为 "图像显示"窗口    namedWindow("pic");// 在窗口中显示图像    imshow("pic", img);// 等待1000 ms后窗口自动关闭    waitKey(0);
}

还可以加入断点进行debug

http://www.lryc.cn/news/118404.html

相关文章:

  • nginx反向代理及负载均衡的实现
  • Tomcat部署SpringBoot项目
  • Oracle笔记--dblink
  • Mapbox加载天地图CGCS2000矢量瓦片地图
  • day3 STM32 GPIO口介绍
  • 【ElasticSearch】ElasticSearch 内存设置原则
  • VUE+ElementUI的表单验证二选一必填项,并且满足条件后清除表单验证提示
  • NLP 时事和见解【2023】
  • Windows 环境下 Python3 离线安装 cryptography 失败
  • 年轻代频繁GC ParNew导致http变慢
  • 在.NET 6.0中自定义接口路由
  • Kotlin读写分离CopyOnWriteArrayList
  • centos自动同步北京时间
  • element-ui表格跨页多选实现
  • 线性代数(三) 线性方程组向量空间
  • 学习跨度级交互以提取方面情感三元组
  • 那些年的Xposed开发经验记录
  • android studio内存分析之Memory profiler的使用
  • Qt下载慢/无法下载解决方式
  • 【UE4 RTS】04-Camera Pan
  • 出现raise NotImplementedError报错
  • 第一百二十二天学习记录:C++提高:STL-vector容器(上)(黑马教学视频)
  • 《Linux从练气到飞升》No.11 初识操作系统
  • 什么是 XSS 攻击?
  • 基于Spring Boot的招聘网站的设计与实现(Java+spring boot+MySQL)
  • 中级课程——CSRF
  • 面试热题(岛屿数量)
  • 【WebRTC---源码篇】(二十四)GCC获取码率后的分配
  • 数据可视化工具LightningChart .NET正式发布v10.5.1——拥有全新的3D新功能
  • AWS认证SAA-C03每日一题