01-概述 - OpenCV介绍与环境搭建

目录

1、OpenCV概念

(1)OpenCV 的介绍

(2)图像处理(Image Processing)

(3)OpenCV的架构和核心模块

2、开发环境搭建

3、代码与演示


1、OpenCV概念

(1)OpenCV 的介绍

 OpenCV是计算机视觉开源库,主要算法涉及图像处理和机器学习相关方法;

        OpenCV 的全称是 Open Source Computer Vision Library , 直译就是“开源计算机视觉库”。取代表开源的单词“Open”、“Computer ” 的首字母“C” 以及“ Vision ”的首字母“V”,组合命名为 OpenCV

        OpenCV(open source computer vision library)是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上,能够快速的实现一些图像处理和识别的任务。 

        它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

        OpenCV 还提供 MLL ( Machine Learning Library ) 机器学习库。该机器学习库主要用于统计方面的模式识别和聚类( clustering )。

(2)图像处理(Image Processing)

        图像处理:是用计算机对图像进行分析, 以达到所需结果的技术, 又称影像处理。

        图像处理技术一般包括图像压缩, 增强和复原, 匹配、描述和识别 3 个部分。

        图像处理一般指数字图像处理( Digital Image Processing )。其中, 数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组。该数组的元素称为像素,其值称为灰度值。而数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。

(3)OpenCV的架构和核心模块

核心模块:(最主要是2和3)

        1)HighGUI部分:简称 highgui

        高层 GUI 图形用户界面,可用于处理所有高级用户界面操作,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。

         它有一个等待功能,可以等你按下键盘上的一个键才进入下一步。还有一个可以检测鼠标事件的功能,在开发交互式应用程序时非常有用。

        2)Image Process:简称 imgproc

        图像处理模块。包含如下内容:
        线性和非线性的图像滤波、图像的几何变换、其他图像转换、直方图相关、结构分析和形状描述、运动分析和对象跟踪、特征检测、目标检测等内容
        可以执行诸如图像过滤、形态学操作、几何变换、颜色转换、图像绘制、直方图、形状分析、运动分析、特征检测等操作。

        3)2D Features:简称 featurn2d

        人类视觉系统倾向于从给定场景中提取主要特征,然后记住它,这样便于后续的检索。为了模仿这一点,人们开 始设计各种特征提取器,用于从给定的图像中提取出这些特征点。

        4)Camera Calibration and 3D reconstruction:简称 calib3d

       这个模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单个立体摄像头标定、物体姿态估计、立体相似性算法、3D 信息的重建等。

        5)Video Analysis:简称 video

        视频分析包括诸如分析视频中连续帧之间的运动、跟踪视频中的不同目标、创建视频监控模型等任务。该模块包括运动估计、背景分离、对象跟踪等视频处理相关内容。

        6)Object Detecyion:简称 objdetec

        目标检测模块,包含 Cascade Classification (级联分类)和 Latent SVM 这两个部分。对象检测是指检测给定图像中对象的位置。此过程与对象类型无关。

         如果你设计一个椅子检测器,它不会告诉你给定图像中的椅子是高靠背红色的,还是蓝色低靠背的,它只会告诉你椅子的位置。

        7)Machine Learning:简称 ml

        机器学习模块,基本上是统计模型和分类算法,包含如下内容:

        统计模型( Statistical Models)、 一般贝叶斯分类器(Normal Bayes Classifier)、 K-近邻(K-Nearest Neighbors) 、支持向量机(Support Vector Machines) 、决策树(DecisionTrees)、 提升(Boosting) 、梯度提高树(Gradient Boosted Trees) 、随机树(Random Trees) 、超随机树(Extremely randomized trees) 、期望最大化(Expectation Maximization)、 神经网络(Neural Networks)

        MLData 它还有一个名为快速近似最近邻搜索库(Fast Approximate Nearest Neighbor Search Library,简称 FLANN)的模块,其中包含用于在大型数据集中进行快速最近邻搜索的算法。

        8)GPU加速

        需要付费就会加速。

2、开发环境搭建

(1)下载VS对应版本

(2)OpenCV3.1.0,或者按需下载版本

        下载好对应的版本,直接解压到目标路径即可

(3)配置环境变量和在VS中引入头文件、库文件、链接库

添加环境变量,前面注意加;号

;D:\WorkSpace\OpenCV\opencv\build\bin

头文件:include

D:\WorkSpace\OpenCV\opencv\build\include

D:\WorkSpace\OpenCV\opencv\build\include\opencv

D:\WorkSpace\OpenCV\opencv\build\include\opencv2

库文件:lib

D:\WorkSpace\OpenCV\opencv\build\x64\vc14\lib

链接器 —— 输入

opencv_world310d.lib

        1)编辑配置环境变量

        2)VS中引入头文件、库文件、链接库

打开VS的项目属性:

3、代码与演示

加载一张图片,并显示出来。

成功加载后,也证明环境的搭建是成功的。

#include<opencv2\opencv.hpp>
#include<iostream>using namespace cv;
int main(int argc, char** argv)
{// 加载图像Mat src = imread("test.jpg");if (src.empty()){printf("could not load image...\n");return -1;}// 创建窗口namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);// 显示图像imshow("test opencv setup", src);// 等待按键waitKey(0);// 关闭窗口destroyAllWindows();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/216103.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

夜神模拟器 burp抓包 ADB 微信小程序

夜神模拟器 burp抓包 ADB 微信小程序 初始环境准备应用连接证书转换设置夜神模拟器环境ADB配置测试burp抓包 初始环境准备 既然想了解如何抓包&#xff0c;我想大多数是已经安装好 夜神模拟器 和 Burp 了&#xff0c;这里就不在赘述&#xff0c;直接开始操作。 openssl 的下载…

C练习题_3

一、单项选择题&#xff08;本大题共20小题&#xff0c;每小题2分&#xff0c;共40分。在每小题给出的四个备选项中,选出一个正确的答案&#xff0c;并将所选项前的字母填写在答题纸的相应位置上。 以下正确的C语言自定义标识符是() A. la B. 2a C. do D. a.12 2.在C语言中,错…

ES6之class类

ES6提供了更接近传统语言的写法&#xff0c;引入了Class类这个概念&#xff0c;作为对象的模板。通过Class关键字&#xff0c;可以定义类&#xff0c;基本上&#xff0c;ES6的class可以看作只是一个语法糖&#xff0c;它的绝大部分功能&#xff0c;ES5都可以做到&#xff0c;新…

在Spring Boot中实现单文件,多文件上传

这篇文章算是一篇水文&#xff0c;因为也没啥好讲的&#xff0c;在Spring Boot中&#xff0c;上传文件是我们常常做的&#xff0c;包括我们在实际开发过程中&#xff0c;我们也经常碰到与文件上传有关的功能&#xff0c;这也算是我们常用的一个功能了&#xff0c;毕竟作为开发者…

apple macbook M系列芯片安装 openJDK17

文章目录 1. 查找openjdk版本2. 安装openjdk3. 多jdk之间的切换 在这里我们使用 brew 命令查找并安装。 1. 查找openjdk版本 执行&#xff1a;brew search openjdk&#xff0c;注意&#xff1a;执行命令后&#xff0c;如果得到的结果中没有红框内容&#xff0c;则需要更新一下…

ONNX实践系列-将dbnet.onnx的hardsigmoid op用hardsigmoid.onnx整个去替换掉

一、目标 这个dbnet.onnx是paddleocr转出来的,自带的有paddle的那个hardsigmoid算子 ,这个不好转到trt等框架,因此我们想把这个hardsigmoid 算子op替换成我们常规的pytorch框架转出来的hardsigmoid onnx那种。 二、做法 给出代码如下: import onnx from onnx import help…

AD9361纯逻辑控制从0到1连载10-多芯片同步MCS以及射频同步方法

本文基于ZC706FMCOMMS5的平台&#xff0c;介绍了AD9361的多芯片同步设计方法。这里的“同步”包含了基带同步以及射频同步。AD9361原生只支持基带同步&#xff0c;官方的名称叫MCS&#xff08;Multi-chip Baseband Synchronization &#xff09;&#xff0c;实际上配合外围的射…

Redis常用操作及应用(一)

一、五种数据结构 二、String结构 1、字符串常用操作 SET key value //存入字符串键值对 MSET key value [key value ...] //批量存储字符串键值对 SETNX key value //存入一个不存在的字符串键值对 GET key //获取一个字符串键值 MGET key [ke…

Let’s xrOS 一款让你优先体验社区创作者的 visionOS App工具

Let’s xrOS Apple Vision Pro 发布预示着空间计算时代的到来&#xff0c;让科技爱好者和开发者开始思考如何在新的交互、系统和硬件上打造独特的三维应用。 自 WWDC 2023 的发布会后&#xff0c;社交媒体上涌现了许多精美的 visionOS App 的效果图和演示视频&#xff0c;然而…

开源与闭源

我的观点&#xff1a; 开源与闭源软件都有各自的优势和劣势&#xff0c;没有绝对的对错之分。.. 一、开源和闭源的优劣势比较 开源的好处与劣处 优势&#xff1a; 创新与合作&#xff1a;开源软件能够吸引更多的开发者参与到项目中来&#xff0c;促进创新和合作。开放的源代码…

Chrome网页前端组件调试模式,获取核心业务逻辑

进入网页&#xff0c;点击F12&#xff0c;弹出开发者工具对话框&#xff0c;如下图 定位目标组件&#xff0c;如按钮&#xff0c;修改html&#xff0c;插入οnclick"debugger"代码 在网页点击该按钮&#xff0c;触发调试模式 不停按F11&#xff0c;逐个检索文件…

软著项目推荐 深度学习 python opencv 火焰检测识别 火灾检测

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…