本节我们介绍如何使用 OpenCV + TensorFlow 识别摄像头看到的内容
前言
上节课我们成功安装了 TensorFlow 并且运行了官方的例子,对官方的图片成功进行了识别,那么我们能不能使用自己的图像输入源来跟TensorFlow配合呢?答案是可以的,这节课我们就来一起看看如何使用本地的摄像头和TensorFlow来进行配合。
如果还没有看过上篇手记的同学,可以戳下面的链接来学习一下如何搭建TensorFlow的开发环境吧~
安装OpenCV
首先我们想要操作摄像头,就需要安装OpenCV,由于我们是在Windows系统上,所以安装OpenCV要使用别人编译过的whl文件来安装。去下面的地址,选择适合你的whl文件版本:
我下载的是 opencv_python‑3.4.1+contrib‑cp36‑cp36m‑win_amd64.whl 其中 cp36 表示 cpython3.6 的版本,win 表示 windows系统,amd64 表示64位。同理,如果你是python其他版本就选择对应的cp和系统位数。建议跟本教程一样的环境,避免不必要的麻烦。
下载完成以后,进入文件存放的目录输入命令:
pip install opencv_python‑3.4.1+contrib‑cp36‑cp36m‑win_amd64.whl
即可完成安装,如果你没有安装anaconda可能会有一些包安装失败,因为OpenCV需要很多依赖包。
测试安装
在python交互界面输入以下命令,打印出3.4.1表示安装成功,代表我们安装的是opencv的3.4.1版本
import cv2
cv2.__version__
有些同学可能从来没有接触过OpenCV,这里就对OpenCV做一个简单的小例子:
import numpy as np
import cv2
# 打开本地摄像头,括号内表示设备编号,第一个设备为0,如果电脑有两个摄像头,第二个摄像头就是1
cap = cv2.VideoCapture(0)
while(True):
# 从摄像头中读取画面,while表示循环读取画面,也就是一张一张图片形成了一个视频
ret, image = cap.read()
# 设置每一张图片的颜色
img_color = cv2.cvtColor(image, 0)
# 显示窗口
cv2.imshow('window', img_color)
# 如果按下键盘上的 Q 就关闭窗口
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
# 关闭窗口
cv2.destroyAllWindows()
由此案例我们就可以发现,cap.read() 就是读取一帧摄像头的画面,当我们把它放在一个死循环中,它就会不断的读