VS2017配置OpenCV

0 OpenCV介绍

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉算法,可用于处理图像和视频数据。OpenCV 提供了C语言版本,使开发者可以使用C语言来调用OpenCV提供的功能。

OpenCV 可以用来进行多种图像处理和计算机视觉任务,包括但不限于以下方面:

图像处理:OpenCV 支持图像的读取、保存、复制、剪裁、缩放、旋转、反转等基本操作。

图像滤波:可以应用各种滤波器对图像进行平滑处理、边缘增强、锐化等。

特征检测与描述:可以检测图像中的关键点,计算特征描述子,用于图像匹配和物体识别。

目标检测:可以进行目标检测和目标跟踪,如人脸检测、物体检测等。

视觉特效:可以实现各种视觉特效,如色彩转换、图像融合、图像修复等。

摄像头与视频处理:可以获取摄像头数据,进行实时图像处理和视频处理。

机器学习:OpenCV 提供了一些基本的机器学习算法,如支持向量机(SVM)、k近邻(k-NN)等。

1 下载OpenCV

OpenCV Release版本下载地址为https://opencv.org/releases/,提供了如下环境可选

本次安装以OpenCV3.4.2版本为例,下载地址为Download opencv-3.4.2-vc14_vc15.exe (OpenCV) (sourceforge.net)。在下载完成后,开始安装。

2 安装OpenCV

安装过程没什么需要注意的,选择路径,下一步即可。

3 配置OpenCV

打开VS2017,新建工程,在属性中修改配置,

(1)修改包含目录

为如下三个:

D:\Software\opencv\build\include

D:\Software\opencv\build\include\opencv

D:\Software\opencv\build\include\opencv2

(2)修改库目录

库目录中加入

D:\Software\opencv\build\x64\vc14\lib

(3)添加附加依赖项

附加依赖项中加入opencv_world341d.lib和opencv_world341.lib。带d为debug,不带d为release。

(4)将动态链接库拷贝至工程文件

D:\Software\opencv\build\x64\vc14\bin路径下有两个dll文件,将其copy至VS工程文件夹中,否则会报错缺少dll文件。

(5)测试代码

测试代码是利用OpenCV实现了对一个随机的8×8二维数组,利用3×3的卷积核进行滤波的操作。

#include <iostream>
#include <opencv2/opencv.hpp> int main() {
// 生成随机的8x8二值图
cv::Mat img(8, 8, CV_8UC1);
cv::randu(img, 0, 2); // 随机生成0或1的值 // 定义3x3全1的卷积核
cv::Mat kernel(3, 3, CV_32FC1, cv::Scalar(1.0)); // 执行卷积操作
cv::Mat result;
cv::filter2D(img, result, CV_8UC1, kernel); // 将结果转换为二维数组并打印
int rows = result.rows;
int cols = result.cols;
std::vector<std::vector<int>> resultArray(rows, std::vector<int>(cols)); for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
resultArray[i][j] = result.at<uchar>(i, j);
std::cout << resultArray[i][j] << " ";
}
std::cout << std::endl;
} return 0;
}

运行后打印结果,则表示配置成功!

VS2017配置OpenCV的更多相关文章

  1. OpenCV3.42+VS2017配置+模块计算机类型“X86”与目标计算机类型“x64”冲突”的问题解决

    目录 OpenCV3.42+VS2017配置 Visual Studio 2017 第三方依赖设置,附加依赖项和附加库目录 "fatal error LNK1112: 模块计算机类型&quo ...

  2. VS2017配置opencv-4.2.0详细步骤

    VS2017配置opencv-4.2.0详细步骤   1.下载opencv的安装包并解压.下载网址https://sourceforge.net/projects/opencvlibrary/ 图1 ...

  3. 配置OpenCV产生flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe问题[zz]

    使用vs2012/2013配置opencv编译出现问题: 1>------ 已启动生成: 项目: Win32ForOpenCV245, 配置: Debug Win32 ------ 1> ...

  4. 使用属性表:VS2013上配置OpenCV

    以前,windows下配置OpenCV一直不太方便:总是要手动添加lib,添加include,还要配置PATH使得程序运行时候能找到dll文件. 每次新建一个使用OpenCV的工程都要手动添加,很麻烦 ...

  5. vs配置opencv

    配置OpenCv: 一.新建工程 无论是mfc还是控制台程序都可以. 二.下载opencb,安装在非空格路径下面 解压出来有两个文件夹:build和source,主要用到build,build-x86 ...

  6. 在VS2010下配置OpenCV 2.3

    一.下载OpenCV 2.3:       http://www.opencv.org.cn/download/OpenCV-2.3.0-win-superpack.exe   二.解压 将下载的Op ...

  7. VS2010 配置opencv环境

    大家在使用opencv的时候肯定会面对这样一个问题:根据官网以及大多数教程提供的方法中,似乎每一次新建一个opencv的新项目以后都需要重新再配置"VC++目录"中的"包 ...

  8. OpenCV2学习笔记03:Qt中配置OpenCV环境

    在Qt中开发基于OpenCV的应用时,需要配置对应函数库到环境变量,这时候我们需要使用到qmake能够识别的变量来指定环境变量. INCLUDEPATH: 用于指定搜索头文件到文件夹路径. LIBS: ...

  9. vs2012配置opencv及简单测试

    为visual studio2012搭建openCV平台,实现打开图片. 实现步骤: 1.1.配置环境变量 基于win7操作系统的环境配置步骤: 1.1.1 计算机—>属性—>更改设置—& ...

  10. vs c++配置opencv(1)

    环境: vs2013 opencv2.4.13 准备工作: 1.安装opencv. opencv各版本间存在API差异,opencv提供相应版本的vc文件,在其安装目录 ..opencv\build\ ...

随机推荐

  1. 明修"栈"道——越过Android启动栈陷阱

    作者:vivo 互联网大前端团队- Zhao Kaiping 本文从一例业务中遇到的问题出发,以FLAG_ACTIVITY_NEW_TASK这一flag作为切入点,带大家探究Activity启动前的一 ...

  2. 手写 HashSet的底层 和 迭代器

    1 package Test.CollectionIterator; 2 import java.util.Iterator; 3 public class MyHashSet2<E> i ...

  3. win10启动docker报错,错误码 0xffffffff

    一.注册表修复(如果有就不用管) 在\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Ca ...

  4. [OpenCV-Python] 7 把鼠标当画笔

    文章目录 OpenCV-Python: II OpenCV 中的 Gui 特性 7 把鼠标当画笔 7.1 简单演示 7.2 高级一点的示例 OpenCV-Python: II OpenCV 中的 Gu ...

  5. i < sqrt(n) 和 i*i < n 那一种写法更加高效?

    这两种写法效率依赖处理器.编译器和标准库.一般来说循环内的重复操作的性能差于循环外的单次操作. 参考文献 Which is more efficient to use in a for loop, i ...

  6. vivo积分任务体系的架构演进-平台产品系列05

    作者:vivo 互联网平台产品研发团队- Mu JunFeng 积分体系作为一种常见营销工具,几乎是每一家企业会员营销的必备功能之一,在生活中随处可见,随着vivo互联网业务发展,vivo积分体系的能 ...

  7. js数组和字符串方法

    一.数组方法 1.1.可以改变原数组 var arr = [10, 20, 30, 40, 50, 55]; // 1. **** push() --- 在数组的最后添加一项内容 // var ret ...

  8. 2020-09-16:谈谈TCP的控制位?

    福哥答案2020-09-16:#福大大架构师每日一题# 福哥口诀法:紧确推和复同终(紧急位URG,确认位ACK,推送位PSH,复位位RST,同步位SYN,终止位FIN). [答案来自此链接](http ...

  9. 2022-06-10:薯队长从北向南穿过一片红薯地(南北长M,东西宽N),红薯地被划分为1x1的方格, 他可以从北边的任何一个格子出发,到达南边的任何一个格子, 但每一步只能走到东南、正南、西南方向的

    2022-06-10:薯队长从北向南穿过一片红薯地(南北长M,东西宽N),红薯地被划分为1x1的方格, 他可以从北边的任何一个格子出发,到达南边的任何一个格子, 但每一步只能走到东南.正南.西南方向的 ...

  10. 2021-06-13:如果一个节点X,它左树结构和右树结构完全一样,那么我们说以X为头的树是相等树。给定一棵二叉树的头节点head,返回head整棵树上有多少棵相等子树。

    2021-06-13:如果一个节点X,它左树结构和右树结构完全一样,那么我们说以X为头的树是相等树.给定一棵二叉树的头节点head,返回head整棵树上有多少棵相等子树. 福大大 答案2021-06- ...