OpenCV-Python学习(1)—— OpenCV历史与安装

1. OpenCV 介绍

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

2. OpenCV 发展历史

时间发布版本
1999年CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器做了特定优化。
2006年支持Mac OS的OpenCV 1.0发布。
2009年Version 2.0发布。
2015年发布OpenCV 3.0。
2018年发布OpenCV 4.0。
2022年4月发布OpenCV 4.5.5。
注意

OpenCV 1.0版本和OpenCV 2.0版本差距比较大;OpenCV 2.0版本和OpenCV 3.0版本近似;OpenCV 3.0版本和OpenCV 4.0版本差距比较大。因此开始需要找到python对应版本的OpenCV版本。

3. OpenCV 模块

1. OpenCV 主要模块
模块介绍
ml机器学习库(Machine Learning Library, MLL)是一组可用于分类、回归和聚类目的的类和方法
calib3d摄像机标定和三维重建,包括基本的多视点几何算法、立体匹配算法、目标姿态估计、单摄像机和立体摄像机标定以及三维重建
features2d二维特征框架,该模块包括特征检测器、描述符和描述符匹配器
objdetect目标检测,检测预定义类的对象和实例(例如,人脸、眼睛、人和汽车)
stitching图像拼接,实现了一个自动拼接全景图像的拼接流水线
photo计算摄影,提供一些计算摄影的函数
dnn深度神经网络(Deep neural network, DNN)模块,本模块包含以下内容:用于创建新层的API、一组预定义的常用层、从层构造和修改神经网络的API、从不同深度学习框架加载序列化网络模型的功能等
Core核心模块,是定义基本数据结构的模块,也包括库中所有其他模块使用的基本函数
Imgproc图像处理模块,包括图像滤波、几何图像变换、颜色空间变换和直方图
Imgcodecs图像文件读写
HighGui高级GUI,提供UI功能的接口,可以执行以下操作:创建和操作可以显示的窗口、将滑动条添加到窗口、键盘命令和处理鼠标事件等
VideoIO视频I/O,视频捕获和视频编解码器的接口
Video视频分析模块,包括背景减法、运动估计和目标跟踪算法
2. OpenCV 扩展模块

视频编码解码、CUDA加速、IE加速、DNN扩展功能、背景分析、图像分析、光流分析。

3. 注意
  1. 没有足够稳定性;
  2. 需要自己编译。

4. OpenCV 源码和教程

  1. GitHub源码
  2. OpenCV 4.5.5 文档

5. OpenCV-Python 安装

1. 只安装【主模块】
pip install opencv-python==4.6.0.66
2. 使用镜像安装 OpenCV-Python
pip install opencv-python==4.6.0.66 -i https://pypi.tuna.tsinghua.edu.cn/simple
3. 安装【主模块和附加模块】
pip install opencv-contrib-python
4. 注意

在不使用附加模块的情况,尽量只安装主模块!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OpenCV是一款非常强大的计算机视觉库,其中包含了很多功能强大的图像处理和计算机视觉算法。而在这个系列的第三篇文章中,我们将重点介绍如何在OpenCV中绘制图形和文本。 OpenCV中绘制图形的函数包括cv2.line(直线),cv2.rectangle(矩形),cv2.circle(圆),cv2.ellipse(椭圆)和cv2.putText(文本)。这些函数的使用非常简单,只需要指定图像,开始点和结束点(或中心点和半径),颜色和线宽即可。 例如,我们可以使用cv2.rectangle函数在图像上绘制一个矩形: ``` import cv2 import numpy as np img = np.zeros((512,512,3), np.uint8) # 创建一个黑色的图像 cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) # 绘制矩形 cv2.imshow("image",img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在这个例子中,我们首先创建了一个512x512的黑色图像,然后使用cv2.rectangle函数在图像上绘制了一个矩形,并将其显示出来。在这里,矩形的左上角坐标是(384,0),右下角坐标是(510,128),颜色是绿色(0,255,0),线宽为3。 除了绘制图形,我们也可以使用cv2.putText函数在图像上绘制文本。这个函数的使用也非常简单,只需要指定图像,文本内容,位置,字体,字体大小和颜色即可。 例如,我们可以使用cv2.putText函数在图像上写入一个“Hello World!”的文本: ``` import cv2 import numpy as np img = np.zeros((512,512,3), np.uint8) # 创建一个黑色的图像 font = cv2.FONT_HERSHEY_SIMPLEX # 设置字体 cv2.putText(img,'Hello World!',(10,500), font, 1,(255,255,255),2,cv2.LINE_AA) # 绘制文本 cv2.imshow("image",img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在这个例子中,我们使用cv2.putText函数在左下角绘制了一个“Hello World!”的文本,并将其显示出来。在这里,我们首先选取了字体类型为cv2.FONT_HERSHEY_SIMPLEX,然后指定了文本的位置(10,500),字体大小为1,颜色为白色(255,255,255),线宽为2,并且使用了cv2.LINE_AA参数,以实现更好的文本渲染效果。 综上所述,OpenCV中可以很方便地对图像进行绘制和文本处理,这对于图像处理和计算机视觉应用来说是非常重要的一步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Rattenking

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值