OpenCV修养(一)——引入

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引擎。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ArimaMisaki

如果知识有用请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值