人们认为计算机科学是天才的艺术,但是实际情况相反,只是许多人在其它人基础上做一些东西,就像一面由石子垒成的墙。——高德纳
OpenCV 于 1999 年由 Gary Bradsky 在英特尔创立,第一个版本于 2000 年问世。Vadim Pisarevsky 加入了 Gary Bradsky,负责管理英特尔的俄罗斯软件 OpenCV 团队。2005 年,OpenCV 被用于 Stanley ,这辆车赢得了 2005 年美国穿越沙漠 DARPA 机器人挑战大赛。后来,在 Willow Garage 的支持下,在 Gary Bradsky 和 Vadim Pisarevsky 主导下,OpenCV 项目的开发工作变得活跃起来。OpenCV 现在支持与计算机视觉和机器学习相关的众多算法,并且每天都在拓展中。
OpenCV 支持各种编程语言,如 C++,Python,Java 等,可在不同的平台上使用,包括 Windows,Linux,OS X,Android 和 iOS。基于 CUDA 和 OpenCL 的高速 GPU 操作接口也在积极开发中。
OpenCV-Python 是 OpenCV 的 Python API,结合了 OpenCV C++ API 和 Python 语言的最佳特性。
OpenCV-Python 是一个 Python 绑定库,旨在解决计算机视觉问题。
Python 是一种由 Guido van Rossum 开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码表达思想,而不会降低可读性。
与 C/C++ 这类语言相比,Python 的速度更慢。好在,可以使用 C/C++ 轻松的拓展 Python ,我们可以在 C/C++ 中编写计算密集型代码,并用 Python 来封装。这给我们带来了两个好处:首先,代码像原始的 C/C++ 代码一样快(因为后台实际上就是 C/C++ 代码在工作),其次,在 Python 中编写代码比在 C/C++ 中更容易。OpenCV-Python 就是 OpenCV C++ 的 Python 封装。
OpenCV-Python 使用了 Numpy,这是一个有着 MATLAB 风格语法,高度优化的用于数值计算的库。所有 OpenCV 数组结构都与 Numpy 数组进行转换。这也使得与使用 Numpy 的其他库(如 SciPy 和 Matplotlib)集成更容易。
OpenCV具有模块化结构,这意味着该软件包包含几个共享或静态库。提供以下模块:
1.安装anaconda(因为我不想直接安装在我主环境下,用来创建一个虚拟环境为了后续工作的方便)
Anaconda | The World's Most Popular Data Science Platform
选着win10的下载
开始安装
选择路径
选着
之后打开anaconda
创建一个虚拟环境
点击create创建虚拟环境
英文名或者数字不要带中文创建成功后我们就安装opencv-python
打开终端(终端激活虚拟环境)
conda activate xxxx(自己刚才创建定义的名字)
后输入
pip install opencv-python==4.1.2.30
等待安装就可以了
此时我们的opencv环境就安好啦!
打开pycharm(添加解释器)
虚拟环境添加成功后我们来试一下代码吧
接下来我们试一下opencv二维码识别
代码如下
import numpy as np
import matplotlib.pyplot as plt
import cv2
import time
from pyzbar.pyzbar import decode
cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)
while True:
success, img = cap.read()
for barcode in decode(img):
codeData = barcode.data.decode('utf-8')
print(time.strftime("%H:%M:%S-") + codeData)
pts = np.array([barcode.polygon], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (255, 0, 255), 5)
pts2 = barcode.rect
cv2.putText(img, time.strftime("%H:%M:%S-") + codeData, (pts2[0], pts2[1]), cv2.FONT_HERSHEY_SIMPLEX, 0.9,
(255, 0, 255), 2)
cv2.imshow('image', img)
cv2.waitKey(1)
会出现一个二维码使用 pyzbar识别QR二维码错误我们在conda的终端输入
pip install pyzbar
就可以运行啦