百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

OpenCV4.5+Visual Studio 2017开发环境配置

bigegpt 2024-09-12 11:27 9 浏览

1.下载资源

OpenCV 官网地址:https://opencv.org/

进入Gitbub 下载安装包



2.安装

直接双击运行安装包即可,指定安装目录,如安装到 C:\opencv 目录(或其他目录),安装后文件夹如下:

build文件夹存放了编译后的文件,我们可以直接使用。source文件夹存放了opencv相关的一些资源文件,本文重点是介绍Visual Studio 2017配置OpenCV环境,这部分内容后面再单独介绍。打开build文件夹,如下,

重点关注如下3个文件夹:

1)bin 文件夹存放了32位的库文件,这里推荐使用x64位操作系统。两者的区别在于,x86兼容性强一些(32位的程序可以在x86和x64位的机器上运行,但是64位的程序只能在x64的系统上运行),x64 运行速度快一些。

2)include 文件夹存放在了opencv 的头文件,在引用OpenCV库时需要先引用头文件。

3)x64,64位系统引用OpenCV所需的库文件,里面有两个版本vc14(Visual Studio 2015)和vc15(Visual Studio 2017)。

bin 文件夹 存放了动态运行库文件,发布程序时需要随exe一起打包发给用户,lib 存放静态链接库文件,在程序编译链接时需要指定引用。

3.在Visual Studio2017 中配置OpenCV

opencv在vs中的配置分global和local两种方式,global的方式为VS的系统属性,对所有工程可用,local的方式只对当前工程的配置有效。

local 方式:

在VS中新建一个工程,在项目->属性->C++目录中添加opencv的路径:

虽然opencv,opencv2在include下,但这三个路径都要添加,否则有一些.h或者.hpp文件会找不到。 而在VS中使用opencv时,需要在程序开头包含这些头文件。

#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;

库目录中添加 D:\opencv\build\x64\vc15\lib 这些lib文件使得C++在调用opencv的dll文件时能够找到对应的位置,如果是32位的电脑要把x64改成x86。此外还要在项目->属性->链接器->输入中加入对应lib文件的名字:

比如当我们使用opencv中的ml库,就需要在这里加入lib文件,在C++代码中加入对应的头文件,如下

#include <opencv2/ml/ml.hpp>

这样你的C++代码就能找到opencv中的machine learning 库并调用相关的 函数了。

注意VS的工程是分debug和realease模式的,local的方法不同模式下要分别配置,还有就是如果你opencv装的是64位的,在项目属性页中的活动方案解决平台配置管理也要改成64位才能用。 否则编译能过,生成解决方案的时候就会报错。

global 方式:

如果采用local方式要对每个工程分别配置一遍,如果需要建很多工程的时候推荐使用global方式配置:

在VS中 视图->属性管理器 找到你要使用的模式 debug或者realease ,以及你使用的是win32还是x64, 在对应的.user文件中进行同local的一遍操作:可执行目录,包含目录,库目录的添加,lib文件的添加,这样以后你的每个工程都会默认包含这些路径。

在打开的属性管理器窗口中,展开“Degug|Win64”节点,双击“Micorsoft.Cpp.Win64.user”会打开全局属性设置窗口,

1)在左边选择“VC++目录”;

2)在右边“包含目录”中加上OpenCV的头文件目录,我的头文件目录是放在“D:\opencv\build\include”,这个根据OpenCV的安装目录,一般在build\include目录;

3)在右边“库目录”中加上OpenCV的链接库目录,我的VS2017库目录是放在“D:\opencv\build\x64\vc15\lib”,这个是根据OpenCV的安装目录和IDE版本决定,根据自己的情况选择。

4.验证配置结果

新建一个console程序,添加如下测试代码,

#include "pch.h"
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
	Mat src = imread("D:/opencv/sources/samples/data/lena.jpg");
	imshow("src", src);
	Mat gray;
	cvtColor(src, gray, COLOR_BGR2GRAY);
	imshow("gray", gray);
	Mat binary;
	double t1 = threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
	imshow("binary", binary);
	Canny(src, binary, t1,  255, 3, true);
	imshow("canny", binary);
	waitKey(0);
	return 1;
}

运行结果:

小结:

本文简单介绍了一下OpenCV 的获取,安装以及用Visual Stuido 2017 进行开发的配置,希望能对OpenCV图像处理初学者有点帮助。另外,这里用的是官方的安装版本,扩展模块(如求特征点等功能)还不支持,需要对OpenCV的源码进行编译才行,后面抽空再整理,敬请关注!

待扩展:

1.source文件夹存放的Opencv相关的一些资源文件介绍

2.OpenCV源码编译,调用OpenCV扩展模块

相关推荐

当Frida来“敲”门(frida是什么)

0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

服务端性能测试实战3-性能测试脚本开发

前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

Python 3 加密简介(python des加密解密)

Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

怎样从零开始编译一个魔兽世界开源服务端Windows

第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

附1-Conda部署安装及基本使用(conda安装教程)

Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

如何配置全世界最小的 MySQL 服务器

配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

如何使用Github Action来自动化编译PolarDB-PG数据库

随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

面向NDK开发者的Android 7.0变更(ndk android.mk)

订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

OpenSSH 安全漏洞,修补操作一手掌握

1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

Linux:lsof命令详解(linux lsof命令详解)

介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

幻隐说固态第一期:固态硬盘接口类别

前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

新品轰炸 影驰SSD多款产品登Computex

分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...