Visual Studio + Opencv配置

2023-05-16

目录

  1. Opencv安装、环境变量配置
  2. Visual Studio 库的两种配置

本文使用操作系统为Windows10,仅适用于windows环境Visual Studio编译器上的 Opencv开发配置。Opencv所有平台通用的配置方式是从官网下载源码,然后使用CMake编译成对应平台的库,比如Windows平台,使用CLion IDE + gcc配置Opencv,就需要用CMake + gcc将源码编译成库文件,然后然后CLion才可以配置并使用这些库(主要保持编译器版本匹配)。看起来很麻烦对吧,但有一个例外,那就是Visual Studio编译器,Opencv官方提供了该编译器的Opencv预编译库,不需要自己编译。所以在windows上可以使用VS的小伙伴不要自己编译库了,麻烦又容易出错

Opencv安装、环境变量配置

请在官网下载符合你要求的版本,Releases - OpenCV,下载的是压缩包,双击解压即可,无需像类似应用程序安装一样的步骤,解压目录既是库的保存目录。

接下来需要配置动态库的环境变量,在刚才的解压目录中找到“opencv\build\x64\vc15\bin”,这是Opencv动态库的位置,因为我下载的是64位Opencv,所以去x64。在目前最新的4.6版本中,提供了vc14和vc15两个版本,这表示编译库使用的msvc(VS编译器)版本,vc15对应msvc2017。自己使用VS版本应当大于vc版本,我使用的是VS2019,所以配置vc15的库。

现在需要配置系统环境变量了,将刚才bin目录“E:\Opencv_4.6.0\opencv\build\x64\vc15\bin”(本文是这个目录)添加到Path中,很多人都是这样配的,但我推荐另一种。请在系统变量中增加“OPENCV_DIR”,它的目录是“E:\Opencv_4.6.0\opencv\build\x64\vc15“,然后将“%OPENCV_DIR%\bin”加入Path,为什么要多这一步呢?在VS中配置Opencv库时,我们将使用“OPENCV_DIR”代替“E:\Opencv_4.6.0\opencv\build\x64\vc15”,不仅VS中可以这样代替,整个系统中都是可以的,一旦库的位置发生变动或者更改库,只需要修改“OPENCV_DIR”即可。

Visual Studio 库配置

 不仅适用VS Opencv配置,其他库的配置过程也是如此。这里很多博客做了误导,或者有一些不必要步骤,其实只需要三步:包含目录、库目录、附加依赖项。但也有两种配置方式,同学们任选一种即可。

配置方式一

创建一个VS项目,点击”项目“——>”属性“,打开项目配置属性页,”VC++目录“——>”包含目录“,将头文件目录”E:\Opencv_4.6.0\opencv\build\include“写入。前文说过这里的写法是”$(OPENCV_DIR)\..\..\include“,”..\“表示上一级目录。然后配置”VC++目录“——>”库目录“,这里写入静态库和动态库的目录“$(OPENCV_DIR)\lib”。最后,“链接器”——>“输入”——>“附加依赖项”,这里写入项目将调用的具体库名称,Opencv已经将整合为一个静态库文件“opencv_world460.lib”,可以在“opencv\build\\x64\vc15\lib”看到,相信大家也看到了“opencv_world460.lib”命名规律。现在配置好了吗?

哦,对了,属性页最上面的配置管理器,我在这里Release/x64,那么换成Debug/x64呢,刚才的配置就没了,因为开发程序Debug和Release都要,所以还得配置DeBug。步骤和要填的目录都一样,但有一个细微的不同之处,“附加依赖项”填入“opencv_world460d.lib”,带d.lib在Debug模式使用,不带d.lib在Release模型使用。由于库是64位的版本,所以只在x64运行。

 配置方式二

配置的第一个属性换成“C/C++”——>“常规”——>“附加包含目录”,与方法一中“包含目录”含义和目录一样;第二个属性换成“链接器”——>“常规”——>“附加库目录”,第三个属性同上。

好了,配置完成了,找个代码测试一下吧。

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;

int main()
{
    Mat image;
    image = imread("D:/VScode/luna.jpg", IMREAD_COLOR); // Read the file
    if (image.empty()) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }
    namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
    imshow("Display window", image); // Show our image inside it.
    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

 参考博文:Visual Studio 下配置属性页的一些说明_晚安丶的博客-CSDN博客

如有帮助,欢迎点赞 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio + Opencv配置 的相关文章

  • 在 JavaCameraView 中设置帧速率

    我想使用 JavaCameraView 将帧速率设置为 1 fps 当我打开相机时 帧速率约为 20 fps 我的目的是改变这个值 单击按钮后 1 fps 有人可以帮助我吗 我在互联网上搜索了很多 但我找不到任何有趣的东西 在文档中也htt
  • 使用额外模块构建 opencv 错误 ocv_download

    我尝试使用 Extramodules 构建 openCV 如果我尝试使用 cmake 配置项目文件 Windows 10 上的 vc14 x32 则会出现错误 opencv contrib master modules xfeatures2
  • 如何使用浮点数组中的数据初始化 cv::Mat

    我需要创建一个cv Mat用我的数据初始化的变量float 大批 这应该是基本的 但我很难弄清楚 我有代码 float matrixAB lt 120 floating point array created elsewhere gt cv
  • 无法保存从网络摄像头捕获的图像(OpenCV 2.3 的 imwrite 编译错误)

    我正在使用 OpenCV 2 3 制作简单的网络摄像头程序 但遇到了编译错误 任何想法将不胜感激 编译后 我在 imwrite 处收到以下错误 在下面代码的 read 函数中 这个样本 https code ros org svn open
  • 3D 空间中的激光投影仪校准

    我正在研究一种在现实世界中校准激光投影仪的解决方案 该项目有几个目标 1 Take in a minimum of four points measured in the real world in 3d space that repres
  • 图像中土壤颗粒分水岭以外的替代分割技术

    我正在寻找一种替代方法来分割以下土壤颗粒图像中的颗粒 而不是Python中的分水岭分割 因为它可能会误导对颗粒的正确检测 此外 我正在研究边缘检测图像 使用HED算法 作为附加 我希望找到一种更好的方法来分割颗粒以进行进一步处理 因为我想获
  • 在白色背景上将透明 PNG 保存为 JPEG

    假设我有一张 BGRA 图像numpy数组看起来非常像这样 233 228 230 128 233 228 230 128 233 228 230 0 164 160 159 65 199 197 196 65 255 255 254 12
  • OpenCV Python - 如何实现RANSAC来检测直线?

    我正在尝试检测包含道路的图像上的线条 使用高斯平滑和 Canny 边缘检测 我在尝试实现 RANSAC 时遇到了困难 我基本上不知道如何去做 我可以获得一个粗略的想法或一个带有实现 RANSAC 的随机图像 foo png 的工作代码吗 N
  • 尝试导入 cv2(opencv-python) 包时出错

    我正在尝试使用 cv2 opencv python 包访问我的网络摄像头 当我尝试导入它时 出现此错误 Traceback most recent call last File server py line 6 in
  • 正方形检测找不到正方形

    我正在使用该程序方块 c在 OpenCV 库的示例中可用 它适用于每个图像 但我真的不明白为什么它不能识别该图像中绘制的正方形 After CANNY After DILATE The RESULT图像 红色 http img267 ima
  • 将 openCV 矩阵转换为向量

    看起来很容易 毕竟我们知道 std 或 openCV 向量可以轻松转换为矩阵 如下所示 vector
  • 使用 OpenCL 支持构建 OpenCV

    在 CMake 中 我使用 OpenCL Enable ON 构建了 OpenCV 它自动检测到OPENCL INCLUDE DIR路径但是OPENCL LIBRARY即使单击配置后也是空的 为了OPENCL LIBRARY我也没有看到浏览
  • 尝试捕获默认 iSight 相机时 OpenCV 崩溃

    我正在尝试让 openCV 在我的 Macbook Pro 10 8 5 视网膜型号 上运行 并且我想使用默认的 iSight 摄像头进行输入 因为如果我不这样做 我不想随身携带或购买 USB 摄像头不需要 我正在使用 OpenCV 用户文
  • ld:找不到 -llibtbb.dylib 的库

    我尝试从 opencv 2 4 8 apps haarfinder 编译一些文件 但出现以下错误 ld library not found for llibtbb dylib 注意双l在文件名中 我尝试按照这里的教程进行操作 http co
  • 使用 OpenCV 进行车牌识别

    我有一个项目 需要使用 OpenCV 识别汽车的车牌 我想加载数字或字母的图像 让 OpenCV 识别它并将其打印到控制台 有一个函数可以做到这一点吗 如果没有 我该怎么办 Note 我正在研究灰度级 请帮忙 我必须在一周后完成 谢谢你的快
  • iOS 上的 OpenCV - GPU 使用情况?

    我正在尝试开发一个 iOS 应用程序 可以对来自相机的视频执行实时效果 就像 iPad 上的 Photobooth 一样 我熟悉 OpenCV 的 API 但如果大多数处理是在 CPU 上完成而不是在 GPU 上完成 我担心 iOS 上的性
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一
  • 在 iPad 上使用 OpenCV 避免碰撞

    我正在开展一个项目 需要使用 OpenCV 实现碰撞避免 这是在 iOS 上完成的 iOS 5 及以上版本即可 项目目标 这个想法是将 iPad 安装在汽车仪表板上并启动应用程序 应用程序应该从相机中抓取帧并进行处理 以检测汽车是否会与任何
  • 在opencv中保存帧而不压缩

    我正在尝试使用写 OpenCV 函数 我想保存帧 TIFF扩大 我遇到的问题是保存的图像被压缩 所以我无法使用它们 知道如何摆脱这种压缩吗 提前致谢 不要介意西奇说的话 TIFF 标志通过 LZW 压缩硬编码在 opencv 二进制文件中
  • cv2.cv.BoxPoints(rect) 返回什么?

    rect cv2 minAreaRect largest contour rect rect 0 0 self scale down rect 0 1 self scale down rect 1 0 self scale down rec

随机推荐

  • i.MX6ULL 开发板-Mqtt 移植

    转载 xff1a http e betheme net article show 149636 html action 61 onClick PS xff1a 订阅主题 xff0c 命令如下 xff1a mosquitto sub h lo
  • echo web框架教程

    转载 xff1a https www cnblogs com remixnameless p 14318145 html 一 介绍 echo web框架是go语言开发的一种高性能 xff0c 可扩展 xff0c 轻量级的web框架 echo
  • open cv中cmake编译出现Download: opencv_ffmpeg.dll、ippicv等失败的解决方法

    转载 xff1a https blog csdn net qq 43237769 article details 128010340 问题原因 xff1a CMake opencv时无法连接服务器 xff0c 导致下载 ffmpeg dll
  • 正态分布(Normal distribution)又名高斯分布(Gaussian distribution)

    正态分布 xff08 Normal distribution xff09 又名高斯分布 xff08 Gaussian distribution xff09 xff0c 是一个在数学 物理及工程等领域都非常重要的概率分布 xff0c 在统计学
  • OpenCV图像拼接和图像融合技术

    转自 xff1a https www cnblogs com skyfsm p 7411961 html 图像拼接在实际的应用场景很广 xff0c 比如无人机航拍 xff0c 遥感图像等等 xff0c 图像拼接是进一步做图像理解基础步骤 x
  • 如何将pandas.dataframe的数据写入到文件中

    导入实验常用的python包 如图2所示 import pandas as pd pandas用来做数据处理 import numpy as np numpy用来做高维度矩阵运算 import matplotlib pyplot as pl
  • 八度音阶和频率的关系

    转载 xff1a http www cnblogs com cute archive 2013 02 28 2937222 html 八度音阶和频率的关系 Frequency in hertz semitones above or belo
  • 解决MATLAB不能设置为.m文件默认打开方式

    转载 xff1a https blog csdn net yujiaerzong article details 77624167 1 将下面代码复制保存为 associateFiles m 文件 2 在MATLAB中运行 associat
  • python中的wx模块

    转载 xff1a http www cnblogs com fnng archive 2013 05 23 3094033 html wx包中的方法都是以大写字母开头的 xff0c 而这和Python的习惯是相反的 本节介绍如何创建pyth
  • Postman安装(汉化Postman)

    Postman安装 汉化Postman 一 下载Postman 下载地址 xff1a https www postman com downloads 二 下载汉化包 下载地址 xff1a https github com hlmd Post
  • linux下vscode调试C++

    linux下vscode调试C 43 43 1 在CMakelists中设置编译为Debug模式 xff0c 增加需要生成的可执行程序 set CMAKE BUILD TYPE DEBUG add executable hello main
  • char数组和指针问题

    这个问题是C 43 43 基础问题中相当折腾人的一个 xff0c 死记硬背解决不了根本问题 xff0c 记住还是要忘 xff0c 需要仔细研究其本质 这两种方式就是数组和指针的方式 xff1a span class hljs keyword
  • 找工作笔试面试那些事儿(13)---操作系统常考知识点总结

    上一节对数据库的知识做了一个小总结 xff0c 实际找工作过程中 xff0c 因为公司或单位侧重点不一样 xff0c 考察的知识也是不尽相同的 xff0c 但是作为计算机类的学生 xff0c 操作系统的知识也是必不可少的 xff0c 去年参
  • pnp算法

    pnp算法是解决什么问题的 xff1f PnP xff08 Perspective n Point xff09 是求解 3D 到 2D 点对运动的方法 它描述了当我们知道 n 个 3D 空间点以及它们的投影位置时 xff0c 如何估计相机所
  • Ubuntu 简单的视频剪辑方法

    视频剪辑主要分为两种 xff1a 1 纯粹的录屏 xff0c 不增加停顿 文字说明等 2 在关键位置停顿 xff0c 并配以文字说明 xff1b 针对第二种情况 xff0c 可以把要处理的视频保存成图片 xff0c 然后再利用opencv进
  • [cartographer] 9. proto配置文件读取

    目录 1 proto文件 2 lua配置文件 3 代码 1 xff09 读取lua文件 2 xff09 赋值给proto options 获取proto参数值有两种方式 xff1a 1 xff09 lua文件 2 xff09 通过servi
  • [毫米波雷达建图系列]2. map generator node

    目的 xff1a 利用点云 xff0c 生成概率栅格地图 xff0c 并保存成 pgm 图片格式 主要的函数有三个 xff1a void GetGridMap 注册地图 SaveMap 可以保存成 pgm图片 或者 pcd 格式 xff08
  • 常见的旋转插值

    1 四元数slerp插值 slerp 插值的原理 xff1a 这里 slerp 插值的工程实现 xff1a eigen 的 slerp 函数 Eigen Quaterniond q 61 q0 slerp x0 q1 2 轴角插值 已知 R
  • docker限制cpu使用率

    start docker docker run itd name CONTAINER NAME privileged network host ipc 61 host hostname CONTAINER NAME env COLORFGB
  • Visual Studio + Opencv配置

    目录 Opencv安装 环境变量配置Visual Studio 库的两种配置 本文使用操作系统为Windows10 xff0c 仅适用于windows环境Visual Studio编译器上的 Opencv开发配置 Opencv所有平台通用的