使用python程序在Ubuntu中打开电脑摄像头
环境即软件:Ubuntu16.04.5 opencv2.4.13.6 python3 vim
之前用C++实现过打开电脑摄像头,但并没有记录下来,这次python遇到的问题比上次多,所以简要的记录一下过程。
首先最基本的命令 vim test.py建立一个python脚本,:!python % 用来执行python程序。
代码如下:
import cv2
cap = cv2.VideoCapture(1) #视频进行读取操作以及调用摄像头
width = 640#宽度
ret = cap.set(3, width)
height = 480#高度
ret = cap.set(4, height)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('out.avi', fourcc, 20.0, (width, height))
while cap.isOpened(): #判断视频读取或者摄像头调用是否成功,成功则返回true。
ret, frame = cap.read()#返回给ret的是摄像头调用是否成功的结果,返回给frame的为获取到的视频
if ret is True:
print('frame shape:',frame.shape)
frame = cv2.resize(frame, (640, 480))
out.write(frame)
cv2.imshow('frame', frame)
else:
break
key = cv2.waitKey(1)
if key == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
这里需要注意的是cap = cv2.VideoCapture(1)此处如果不通的话可以试一下0,因为代码是从网上各个地方找的,我用0的时候是不对的,改成1可以,此处需要注意一下。
其中遇到 类似
File “test.py”, line 3
SyntaxError: Non-ASCII character ‘\xe5’ in file test.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
问题在代码前两行加上
#!usr/bin/python
# -*- coding: utf-8 -*-
即可解决。
实现过程中一定要注意代码正确,若是有问题先测试摄像头打开是否有问题或是版本问题,最简便打开摄像头的方法:命令cheese,如果没有安装,先使用 sudo apt-get install cheese 再用命令cheese打开。
实现结果如下:
此处仅仅打开了摄像头,后续会进行人脸检测识别,期待下一篇。。。