【opencv4.3.0教程】01之opencv介绍与配置(win10+VS2015+OpenCV4.3.0)

2023-10-29

目录

一、前言

二、OpenCV介绍

1、介绍

2、OpenCV版本简介

3、OpenCV4.3.0下载

三、OpenCV安装与配置

1、安装

2、环境变量配置

四、配置VS2015

1、包含目录与库目录

2、链接器配置

五、测试及效果


一、前言

OpenCV已经出到4.3.0版本,自问世以来,受到广大好友的喜爱。

其实我之前已经写了OpenCV3.1.0的教程,但那个时候,其实对OpenCV了解不系统,对于OpenCV没有一个整体的认识。这次,我会写更全面的内容,章节分类也更加具体。

如果你目前只是想快速入门opencv,推荐你看:

opencv学习之路:https://blog.csdn.net/shuiyixin/article/details/85648310

这里会告诉你学习历程、以及opencv3.1.0教程,涵盖了绝大多数opencv操作。当你想再深入了解OpenCV,请再次回到OpenCV3.4.0系列,这里讲解更加系统,更加全面,同时也增添了深度学习模块等。你能在这里看到一个不一样的OpenCV。

有人问我:你OpenCV为何一直用C++编写?python它不香嘛?

其实我主要是依据如下两个方面考虑:

第一个方面是OpenCV本身主要就是C++写的,当然其中含混有一些C的函数,虽然它封装了python的接口,但是,从我感觉,还是C++更正统一些。

第二个方面,C++的运算速度是要快于python的,在做图像处理的时候,使用C++更好一些。

剩下的不多说,有什么问题,有什么想法,你尽可评论提问,也可以加群326866692交流。让我们开始吧!

二、OpenCV介绍

1、介绍

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,简单的说,OpenCV是一个开源的计算机视觉库,英文全称为:Open Source Computer Vision Library。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法,运行在Linux、Windows、Android和Mac OS操作系统上。

2、OpenCV版本简介

OpenCV经历了1.x到4.x四个系列的版本:

OpenCV1.x是最初的版本,基于C语言编写,OpenCV1.x的图像存储格式IplImage*基于C接口定义,直接暴露内存,如果忘记释放内存,就会造成内存泄漏,图像的声明和释放都比较繁琐。

从OpenCV2.x开始,使用全新的C++接口,图像类型使用Mat,操作更为方便。同时,OpenCV库被划分成多个模块,看起来更加系统。同时OpenCV增加了新的平台支持,包括iOS和Android,通过CUDA和openGL实现了GPU加速,为Python和Java用户提供了接口。总的来说,OpenCV2标志着OpenCV2革命性的改变,将Opencv的能力放大。

OpenCV2可以说改进是大跨步式改进,OpenCV3.x系列就比较温和了,在2的基础上做了一些优化,功能也更加全面丰富。内容的丰富必然带来臃肿的问题,为了解决这个问题,OpenCV采取内核+插件的架构形式。

OpenCV4.x是全面支持深度学习的,深度学习模块其实是3.x版本引入的,在4中强化了深度学习的功能,目前OpenCV4已经支持 Caffe、TensorFlow、Torch、Darknet、ONNX 交换格式的模型 等众多深度学习框架。

3、OpenCV4.3.0下载

OpenCV4.3.0是OpenCV4系列中最新的版本。相比较之前的版本,4.3.0在深度学习DNN模块等多个方面进行更新。

OpenCV官网提供了OpenCV4.3.0的安装文件,大家可以去官网下载,官网地址如下,注意,官网地址提供多个下载,大家根据自己需要进行下载。

https://opencv.org/opencv-4-3-0/

当然如果访问不了,你也可以加我的技术群326866692下载。群里面提供的是Windows版本的安装包,直接双击安装即可:

三、OpenCV安装与配置

1、安装

我们下载好后,双击安装,建议安装到非C盘,然后,安装好的文件如下:

2、环境变量配置

按照如下顺序依次打开:

【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。

在path路径配置中填写 ”…… opencv\build\x64\vc14\bin”,

很多人发现,X64中有两个文件夹:

VC14和VC15,很多人不明白这个是什么意思?这个其实是VS对应的版本号。详细的对应如下:

Visual Studio 6 vc6                   
Visual Studio 2003 vc7
Visual Studio 2005 vc8
Visual Studio 2008 vc9
Visual Studio 2010 vc10
Visual Studio 2012 vc11
Visual Studio 2013 vc12
Visual Studio 2015 vc14
Visual Studio 2017 vc15

因为我的是VS2015,所以我选择vc14文件夹。然后我们需要做下面的操作:

将bin目录(...\OpenCV\build\x64\vc14\bin)中的3个dll文件复制在(C:\Windows\System32)或者(C:\Windows\SysWOW64)中

例如:

如果没有上面的操作,我们写的代码会报错:

这是因为我们的OpenCV没有安装在C盘,所以找不到对应的dll文件,我们只需要将文件存到C盘就可以啦!

做完操作后,最好重启一下电脑!

四、配置VS2015

我们打开VS2015,创建一个空项目,记住,我们要把安全检查去掉。

 

1、包含目录与库目录

在项目名称右键选择属性:

或者直接在项目中选择属性。进入下面这个界面:

然后我们需要配置VC++目录:

1.我们选择我们的配置模式和平台,例如我选择的是release和x64,x64表示64位,x86表示32位。

2.在包含目录中保存: 

“...\opencv\build\include”;

“...\opencv\build\include\opencv2”

3.在库目录中添加:

“...\opencv\build\x64\vc14\lib”。

 

2、链接器配置

在链接器下的输入中,打开附加依赖项,并输入:

opencv_world430.lib;

opencv_world430d.lib;

注意:

如果我们使用release模式进行编译,那我们就必须要上面的那个依赖项,如果我们使用debug模式进行编译,那我们就要使用下面的依赖项。保险起见是两个依赖项都添加,如果你跟我一样,只在release模式下编译,那就只需要前面的就可以了。

 

五、测试及效果

#define INPUT_TITLE "input image"


#include<iostream>
#include<opencv2\opencv.hpp>

using namespace std;
using namespace cv;

int main() {
	Mat src;
	src = imread("E:/image/src.jpg");
	if (!src.data)
	{
		cout << "ERROR : could not load image.";
		return -1;
	}

	namedWindow(INPUT_TITLE, CV_WINDOW_AUTOSIZE);
	
	imshow(INPUT_TITLE, src);
	waitKey(0);
	return 0;
}

执行结果如下:

 如果大家有什么问题,有什么别的解决不了的问题,可以在下方留言或者加群交流哦!

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

【opencv4.3.0教程】01之opencv介绍与配置(win10+VS2015+OpenCV4.3.0) 的相关文章

  • 在 Python 中将 OpenCV 帧流式传输为 HTML

    我正在尝试从 opencv Pyt hon 中的 URL 读取视频 然后逐帧处理它 然后将其发送到 HTML 页面 But I am only getting the first frame after that the program g
  • cv2.drawContours() - 取消填充字符内的圆圈(Python,OpenCV)

    根据 Silencer的建议 我使用了他发布的代码here https stackoverflow com questions 48244328 copy shape to blank canvas opencv python 482465
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • Python:Urllib2 和 OpenCV

    我有一个程序 可以将图像保存在本地目录中 然后从该目录中读取图像 但我不想保存图像 我想直接从url读取它 这是我的代码 import cv2 cv as cv import urllib2 url http cache2 allposte
  • 如何将多行文本插入到框架/图像中

    我使用 C 和 OpenCV 创建了一个框架 并想在其中插入几行文本 使用以下代码 putText frame My text here cvPoint 30 30 FONT HERSHEY COMPLEX SMALL 0 8 cvScal
  • 查找具有不同强度/亮度的相似图像

    假设我有如下图像 我可以选择什么来比较两个图像之间的相似度 显然它们是相同的图像 只是亮度不同 我找不到任何可行的方法 目前我最好的选择是训练 cnn 或自动编码器并比较输出的特征向量 但这似乎有点矫枉过正 任何提示将不胜感激 相当强大的工
  • 如何使用 AdaBoost 进行特征选择?

    我想使用 AdaBoost 从大量 100k 中选择一组好的特征 AdaBoost 的工作原理是迭代功能集并根据功能的执行情况添加功能 它选择对现有特征集错误分类的样本表现良好的特征 我目前正在 Open CV 中使用CvBoost 我得到
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • opencv中如何去除二值图像噪声?

    将图像转换为二值图像 黑白 后如果有任何噪音怎么办 我消除了那些不需要的噪音 您可以看到下图的黑色区域内有一些白噪声 我该如何去除噪声 使用opencv http img857 imageshack us img857 999 blackn
  • 未加载库:@rpath/libopenblasp-r0.2.19.dylib

    我应该如何解决这个问题 Monas MacBook Pro 02 02 mona python Python 3 6 1 Anaconda custom x86 64 default May 11 2017 13 04 09 GCC 4 2
  • 相机校准:如何正确进行

    我正在尝试使用棋盘格通过众所周知的张氏方法进行校准 然后进行捆绑调整 该方法在 Matlab 和 OpenCV 中都可用 有很多经验指南 但从我个人的经验来看 准确性是相当随机的 它有时可能非常好 但有时也可能非常糟糕 实际上 只需将棋盘放
  • 如何在python 3.8中安装opencv-python

    我在 pycharm 中安装 opencv python 时遇到问题 打开 pycharm 后 我单击 设置 然后单击 项目解释器 单击 并搜索正确的模块 我开始安装 但失败了 Could not find a version that s
  • Alpha 混合可消除图像中的接缝

    我缝合了两张图像 但在最终图像中存在可见的接缝 我正在尝试使用阿尔法混合去除那条接缝 我知道 Alpha 混合是使用cvAddweight 函数 但在此函数参数是两个图像 alpha beta gamma和目的地 我正在服用gamma 0
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • OpenCV Sobel 滤波器 - 为什么它看起来这么糟糕,尤其是与 Gimp 相比?

    我正在尝试使用 OpenCV 重建一些我之前在 Gimp 中完成的预处理 第一级是用于边缘检测的 Sobel 滤波器 它在 Gimp 中运行得很好 现在这是我对 OpenCV 的尝试 opencv imgproc Sobel src sca
  • OpenCV功能类似于matlab的“查找”

    我正在寻找 openCV 中的一个函数来帮助我制作图像蒙版 例如在 MATLAB 中 B A or B 零 大小 A B A 10 c 有些功能可以让你通过mask向他们提出论据 按照您描述的方式创建面具 我认为您正在追求Cmp 或 Cmp
  • 在Spyder(Python 3.6)中导入cv2时出现导入错误

    我已经在Windows操作系统中安装了opencv 3 0 0 我已运行该应用程序并已成功将其安装在C 驱动器并还复制了cv2 pyd文件输入C Python27 Lib site packages正如我在几个教程视频中看到的那样 在我的
  • C++ OpenCV imdecode 慢

    我将图像的字节数组从 C 发送到 C 库 我使用 OpenCV 版本 3 3 1 解码图像 BMP 图像解码速度很快 但 JPEG 图像解码速度很慢 如何加快 JPEG 图像的解码时间 多线程 GPU 解码性能 Resolution For
  • 从基本矩阵中查找单应矩阵

    我正在尝试计算单应性矩阵H给定一组对应关系和基本矩阵F 根据对极几何原理 我知道这可以通过对极线和对极线的叉积来完成F from 极点几何 http www cs unc edu marc tutorial node44 html e ij

随机推荐

  • windows2008服务器维护,Windows Server 2008R2 & windows server 2012 R2

    PAGE TITLEWindows Server 2008R2 windows server 2012 R2 windows服务器维护 86988 net contacts DESCRIPTIONMd5 file get DT ROOT l
  • C++中cout和cerr的区别

    标准IO库定义的其中3个IO对象 一个istream类型对象 cin 两个ostream对象 cout cerr cin 读取标准输入的istream对象 对应于标准输入流 关联到标准输入设备 通常为键盘 用来读取用户在终端上的输入内容 通
  • 2021-03-26

    爬虫笔记1 爬虫基础 1 爬虫的特点介绍 1 知识点碎片化 面对不同的网站 每个网站都有每个网站的特点 根据不同网站采取不同的技术和手段 2 学习难度在于要与网站的运维人员和维护人员进行搏斗 网站的网爬是不断升级 3 学习特点 爬虫的阶段课
  • 网络编程02

    网络通信 底层遵循TCP IP协议 在系统中以socket接口方式呈现 基于TCP协议的网络通信模型 服务端 客户端 创建socket对象 创建socket对象 准备通信地址 本机ip 端口号 准备通信地址 目标公网ip 端口号 绑定soc
  • UOS桌面版配置远程访问

    UOS桌面版配置远程访问 一 SSH SFTP 二 VNC 三 x11vnc service 一 SSH SFTP 安装SSH sudo apt update sudo apt install ssh 开启SFTP vi etc ssh s
  • 单次交换找字典序最小字符串

    题目要求 给一个字符串s 你可以至多选择两个不同位置的字符进行交换 可以不交换 问所有可能中字典序最小的串 输入 aaazbcdeadcd 输出 aaaabcdezdcd 题目解析 字典序最小 即与当前字符串相比最小的字符串 那么只需要找到
  • 【数据压缩】Exp01.彩色空间转换——YUV2RGB

    一 基本原理 这次的实验是将yuv格式的图像转换为rgb格式 两种彩色空间互相转换的公式如下 1 RGB转YUV Y 0 2990 R 0 5870 G 0 1140 B U 0 1684 R 0 3316 G 0 5 B V 0 5 R
  • css复习中常见的问题

    1 如果想让图片位于文字之后显示 即文字占前边 如下代码所示 img src dog jpg alt p 保护动物 人人有责 p 注意 由于在上述例子img标签元素设置了z index属性 即显示元素相对应的优先级 值 1即表示优先级滞后一
  • 虚拟机服务器的好处,vmware虚拟机的作用

    虚拟机不仅仅应用于学习与实验中 还可以直接应用于现实 使用VMware GSX Server或VMware ESX Server Microsoft Virtual Server 可以在一台高性能的服务器上同时运行多台虚拟机服务器 每台虚拟
  • kind & kubernetes 集群内如何通过 helm 部署定制化 Prometheus-Operator?

    文章目录 1 Prometheus 简介 2 Prometheus 优势 3 Prometheus 架构图 4 Prometheus Operator 简介 5 Prometheus Operator 架构图 6 环境准备 7 Kind 部
  • 优雅演进:探索低代码与全栈的完美结合

    前情提要 本章节是番外篇的低代码平台的相关知识 接下来我们即将进入一个全新的空间 对代码有一个全新的视角 以下的内容一定会让你对低代码平台有一个颠覆性的认识哦 以下内容干货满满 跟上步伐吧 作者介绍 作者 热爱编程不起眼的小人物 作者的Gi
  • sbt配置国内镜像

    操作环境 win10 从官网下载sbt的windows安装包 安装成功后 进入安装目录的 conf 文件夹 编辑sbtconfig txt 增加下面两行代码 Dsbt global base C Sbt sbt Dsbt repositor
  • 智能安全 - 学习资源

    Security Data Science Learning Resources
  • 【Spring源码系列】Bean生命周期-实例化前

    这里写目录标题 前言 一 实例化前 InstantiationAwareBeanPostProcessor介绍 InstantiationAwareBeanPostProcessor实例化前作用 InstantiationAwareBean
  • iphonex黑屏开不了机_手机死机开不了机怎么办

    大多数手机用户在使用手机过程中或多或少都遇到过死机的问题 如同电脑的操作系统也会出现死机一样 那么 当手机死机开不了机怎么办 下面介绍一下手机死机后开不了机解决办法 手机死机开不了机怎么办 苹果手机的死机解决方法 步骤1 按住你手机 开机键
  • 初探STM32F4(6)--系统时钟配置

    时钟配置 概述 时钟系统框图 时钟系统初始化代码架构分析 概述 经过前文对GPIO USART外设的初步学习 发现有两个基本知识需要补充学习 一个是系统时钟的相关配置 另一个是中断事件的相关配置 本文先学习系统时钟 阅读完本文 要能回答以下
  • C++ 防 陷阱2 重复包含头文件

    multiple definition of 错误 1 为了避免重复包含头文件 建议在声明每个都文件时采用 头文件卫士 采用google建议H 具体形式如下 ifndef PROJECT PATH FILE H define PROJECT
  • 十五)Stable Diffusion使用教程:其他

    A still life scene with the theme of small and delicate jewelry crystal clear gemstones Product positioning is conspicuo
  • ARM Linux Oops使用小结

    内核Oops小结 出现Oops消息的大部分错误时因为对NULL指针取值或者因为用了其他不正确的指针值 Oops如何产生的解释如下 由于处理器使用的地址几乎都是虚拟地址 这些地址通过一个被称为 页表 的结构被映射为物理地址 当引入一个非法指针
  • 【opencv4.3.0教程】01之opencv介绍与配置(win10+VS2015+OpenCV4.3.0)

    目录 一 前言 二 OpenCV介绍 1 介绍 2 OpenCV版本简介 3 OpenCV4 3 0下载 三 OpenCV安装与配置 1 安装 2 环境变量配置 四 配置VS2015 1 包含目录与库目录 2 链接器配置 五 测试及效果 一