一、OpenCV简介
https://pypi.org/project/opencv-python/
https://opencv.org/releases.html
文档:https://docs.opencv.org/3.0-beta/modules/refman.html
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。
在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。此外,OpenCV还提供了Java、python、cuda等的使用接口、机器学习的基础算法调用,从而使得图像处理和图像分析变得更加易于上手,让开发人员更多的精力花在算法的设计上。
二、OpenCV应用领域
计算机视觉领域方向
1)、人机互动
2)、物体识别
3)、图像分割
4)、人脸识别
5)、动作识别
6)、运动跟踪
7)、机器人
8)、运动分析
9)、机器视觉
10)、结构分析
11)、汽车安全驾驶计算机操作底层技术
图像数据的操作: 分配、释放、复制、设置和转换。 图像是视频的输入输出I/O ,文件与摄像头的输入、图像和视频文件输出)。
矩阵和向量的操作以及线性代数的算法程序:矩阵积、解方程、特征值以及奇异值等。
各种动态数据结构:列表、队列、集合、树、图等。
基本的数字图像处理:滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图、图像金字塔等。
结构分析:连接部件、轮廓处理、距离变换、各自距计算、模板匹配、Hough变换、多边形逼近、直线拟合、椭圆拟合、Delaunay 三角划分等。
摄像头定标:发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计、立体对应。
运动分析:光流、运动分割、跟踪。
目标识别:特征法、隐马尔可夫模型:HMM。
基本的GUI:图像与视频显示、键盘和鼠标事件处理、滚动条。
图像标注:线、二次曲线、多边形、画文字。
三、安装OpenCV的的两种方法-
下载地址:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
使用whl文件法:
(base) C:\Users\Administrator>pip install opencv_python-4.0.1-cp37-cp37m-win_amd
64.whl
直接命令法
pip install opencv-python -
anaconda 安装
四、Python调用摄相头
# -*- coding: UTF8 -*-
import cv2 as cv
def video_test():
# 打开0号摄像头,捕捉该摄像头实时信息
# 参数0代表摄像头的编号
# 有多个摄像头的情况下,可用编号打开摄像头
# 若是加载视频,则将参数改为视频路径,cv.VideoCapture加载视频是没有声音的,OpenCV只对视频的每一帧进行分析
capture = cv.VideoCapture(0)
while (True):
# 获取视频的返回值 ref 和视频中的每一帧 frame
ref, frame = capture.read()
# 加入该段代码将使拍出来的画面呈现镜像效果
# 第二个参数为视频是否上下颠倒 0为上下颠倒 1为不进行上下颠倒
frame = cv.flip(frame, 1)
# 将每一帧在窗口中显示出来
cv.imshow("video", frame)
# 设置视频刷新频率,单位为毫秒
# 返回值为键盘按键的值
c = cv.waitKey(50)
# 27为 Esc 按键的返回值
if c == 27:
break
video_test()
# 等待用户操作
cv.waitKey(0)
# 释放所有窗口
cv.destroyAllWindows()