OpenCV修养(一)——引入

文章目录

  • 1 引入
    • 1.1 OpenCV是啥
    • 1.2 OpenCV——Python

1 引入

1.1 OpenCV是啥

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

1.2 OpenCV——Python

OpenCV—python是一个python绑定库,旨在解决计算机视觉问题。

OpenCV-Python使用Numpy,这是一个高度优化的数据库操作库,具有MATLAB风格的语法,所有OpenCV数组结构都转换为Numpy数组,这也使得与使用Numpy的其他库集成更容易。

openCV-Python的部署十分简单,但需要在有Numpy和matplotlib的前提下才能进行安装。我们可以打开cmd或者anaconda prompt的shell命令窗口,输入以下:

pip install opencv-python==3.4.2.17 -i https://pypi.tuna.tsinghua.edu.cn/simple

即可完成安装。如果想要测试是否安装成功,则试着运行以下的代码。

import cv2
#读一个图片
lena = cv2.inread("1.jpg")
cv2.imshow("image",lena)
cv2.waitKey(0)

OpenCV-python主要的模块如下所示,在后面的学习中,我直接称OpenCV-python为OpenCV了。

image-20220315150709955

其中core、highgui、imgproc是最基础的模块。

  • core模块实现了最核心的数据结构及其基本运算,如绘图函数,数组操作相关函数等
  • highgui模块实现了视频与图像的读取、显示、存储等接口
  • imgproc模块实现了图像处理的基础方法,包括图像滤波、图像的几何变化、平滑、阈值分割、形态学处理、边缘检测、目标检测、运动分析和对象跟踪等

除了上述的三个最基本的模块,还有其他的一些模块也是用于图像处理。

  • features2d模块用于提取图像特征以及特征匹配,nonfree模块实现了一些专利算法,如sift特征。
  • objdetect模块实现了一些目标检测的功能,经典的基于Haar、LBP特征的人脸检测,基于HOG的行人、汽车等目标检测,分类器使用Cascade Classification(级联分类)和Latent SVM等。
  • stitching模块实现了图像拼接功能。
  • FLANN模块包含快速近似最近邻搜索FLANN和聚类Clustering算法。
  • ml模块机器学习模块(SVM、决策树、Boosing等等)
  • photo模块包含图像修复和图像去噪两部分
  • video模块针对视频处理,如背景分离、前景检测、对象跟踪等。
  • calib3d模块即Calibration3D,这个模块主要是相机校准和三维重叠相关的内容。包含了基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建等待。
  • G-API模块包含了超高效的图像处理pipeline引擎。

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

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

相关文章

动态创建 Plist 文件

简介 Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件,文件是xml格式的。 写入plist文件 在开发过程中,有时候需要把程序的一些配置保存下…

[Everyday Mathematics]20150101

(1). 设 $f(x),g(x)$ 在 $[a,b]$ 上同时单调递增或单调递减, 试证: \[ (b-a)\int_a^b f(x)g(x)\mathrm{\,d}x \geq \int_a^b f(x)\mathrm{\,d}x\cdot \int_a^b g(x)\mathrm{\,d}x. \] (2). 试证: \[ c\in (0,1)\Rightarrow \int_c^1 \dfrac{e^t}{t}\mathrm{\,d}t \geq e\cdot …

被解放的姜戈08 远走高飞

作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 之前在单机上实现了一个Django服务器(被解放的姜戈07 马不停蹄),现在我们可以把这个服务器推上一个云平台。这里我选择使用阿里云。 看着复仇的火焰…

OpenCV修养(二)——OpenCV基本操作

文章目录2 OpenCV基本操作2.1 IO操作2.2 图像基本操作2.2.1 图像绘制2.2.1.1 绘制直线2.2.1.2 绘制圆形2.2.1.3 绘制矩形2.2.1.4 添加文字2.2.1.5 试手2.2.2 获取/修改图像的像素点2.2.3 获取图像属性2.2.4 图像通道拆分/合并2.2.5 色彩空间改变2.2.6 边界填充2.3图像算数操作2…

ylbtech-LanguageSamples-Porperties(属性)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性)1.A,示例(Sample) 返回顶部“属性”示例 本示例演示属性为何是 C# 编程语言必不可少的一个组成部分。它演示了如何声明和使用属性。有关更多信息,请参见属性(C# 编…

Altium Designer敷铜的规则设定

InPolygon 这个词是铺铜对其他网络的设置,铺铜要离其他网络远点,因为腐蚀不干净会对 电路板有影响... 问题一:: 如下图所示,现在想让敷铜与板子边界也就是keepoutlayer的间距小一点,比如0.2MM。而与走线的间距比较大,比如0.8mm。要怎么设置规…

OpenCV修养(三)——图像处理(上)

文章目录致谢3 图像处理(上)3.1 几何变换3.1.1 图像缩放3.1.2 图像平移3.1.3 图像旋转3.1.4 仿射变换3.2 图像阈值3.3 图像平滑3.3.1 图像噪声3.3.1.1 椒盐噪声3.3.1.2 高斯噪声3.3.2 均值滤波3.3.3 方框滤波3.3.4 高斯滤波3.3.5 中值滤波3.3.6 小结3.4 …

程序员福利各大平台免费接口,非常适用

电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuIdsJ_商品ID&type1 ps:商品ID这么获取:http://item.jd.com/954086.html 物流接口 快递接口: http://www.kuaidi100.com/query?type快递公司代号&postid快递单号 ps:快递公司编码:申通”shentong”…

CF940D Alena And The Heater

思路&#xff1a; 模拟。 实现&#xff1a; 1 #include <bits/stdc.h>2 using namespace std;3 const int INF 1e9;4 int a[100005], n;5 string b;6 int main()7 {8 while (cin >> n)9 { 10 for (int i 0; i < n; i) cin >> a[i]; 11 …

Android工程开发笔记一

Android工程开发笔记<一> ---------------------------------------不同 APP相互调用 activity 1.ComponentName() Intent _Intent new Intent(Intent.ACTION_MAIN); _Intent.setComponent(new ComponentName("com.semp.skipdemo002","com.semp.skipdemo…

机器学习的练功方式(十一)——逻辑回归

文章目录致谢11 逻辑回归11.1 引入11.2 激活函数11.3 损失函数11.4 梯度下降11.5 案例&#xff1a;癌症分类预测致谢 逻辑回归为什么用Sigmoid&#xff1f; - 知乎 (zhihu.com) 逻辑回归中的损失函数的解释_yidiLi的博客-CSDN博客_逻辑回归损失函数 11 逻辑回归 逻辑回归也被称…

ODB——基于c++的ORM映射框架尝试(安装)

这篇博客应该是和之前的重拾cgi一起的。当时为了模仿java的web框架&#xff0c;从页面的模板&#xff0c;到数据库的ORM&#xff0c;都找个对应的库来进行尝试。数据库用的就是ODB&#xff0c;官方网站是http://www.codesynthesis.com/products/odb/。 1、安装 odb是直接提供源…

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

【百度地图API】如何制作一张魔兽地图&#xff01;&#xff01;——CS地图也可以&#xff0c;哈哈哈 原文:【百度地图API】如何制作一张魔兽地图&#xff01;&#xff01;——CS地图也可以&#xff0c;哈哈哈摘要&#xff1a; 你玩魔兽不&#xff1f;你知道如何做一张魔兽地图不…

Linux OpenGL 实践篇-2 创建一个窗口

OpenGL 作为一个图形接口&#xff0c;并没有包含窗口的相关内容&#xff0c;但OpenGL使用必须依赖窗口&#xff0c;即必须在窗口中绘制。这就要求我们必须了解一种窗口系统&#xff0c;但不同的操作系统提供的创建窗口的API都不相同&#xff0c;如果我们在学习OpenGL时要去学习…

C++从0到1的入门级教学(一)——C++初识

文章目录1 C初识1.1 入门1.1.1 简介1.1.2 输入和输出1.1.3 头文件名1.1.5 名称空间1.2 注释1.3 变量1.4 常量1.4.1 C定义常量两种方式1.5 关键字1.6 标识符命名规则1 C初识 1.1 入门 1.1.1 简介 既然是第一次学习&#xff0c;我们就使用大家初学任何编程语言都会用的"h…

linux系统分两种更普遍的包,rpm和tar,这两种安装包如何解压与安装

2019独角兽企业重金招聘Python工程师标准>>> RPM软件包管理器&#xff1a;一种用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。rpm -ivh xxxx.rpm <-安装rpm包 -i install的意思 -v view 查看更详细的…

C++类的数组元素查找最大值问题

找出一个整型数组中的元素的最大值。 1 /*找出一个整型数组中的元素的最大值。*/2 3 #include <iostream>4 using namespace std;5 6 class ArrayMax //创建一个类7 {8 public :9 void set_value(); 10 void max_value(); 11 void sh…

ABNFBNF 巴克斯范式

https://www.cnblogs.com/qook/p/5957436.html转载于:https://www.cnblogs.com/ArcherHuang/p/8479897.html

C++从0到1的入门级教学(二)——数据类型

文章目录2 数据类型2.1 简单变量2.2 基本数据类型2.2.1 整型2.2.2 实型&#xff08;浮点型&#xff09;2.2.3 字符型2.2.4 布尔类型2.3 sizeof关键字2.4 类型转换2.5 转义字符2.6 重新谈及变量2.6.1 字面值常量2.6.2 变量2.6.3 列表初始化2.7 数据的输入2 数据类型 2.1 简单变…

大数乘法

很久没手写过大数运算了&#xff0c;以前也都是直接贴模板的&#xff0c;今晚的模拟笔试最后一道大数乘法就没调好&#xff0c;gg…… #include <iostream> #include <string> #include <cstdio> #include <cstring> using namespace std;string num1,…