使用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打开。
实现结果如下:
使用python程序在Ubuntu中打开电脑摄像头
此处仅仅打开了摄像头,后续会进行人脸检测识别,期待下一篇。。。