Ubuntu下的tensorflow:ubuntu16.04+python+opencv调用usb摄像头

首先为摄像头装驱动

摄像头为罗技c930e。使用下面代码安装guvcview,在/dev下输入guvcview命令就可以了!是不是很简单, 比cheese好使哦~

$ sudo add-apt-repository ppa:pj-assis/ppa  
$ sudo apt-get update  
$ sudo apt-get install guvcview
$ cd /dev
$ guvcview

注:也有安装luvcview的,但luvcview需要google找到,不能墙的小伙伴们可以安装guvcview。guvcview是一个使用linux UVC驱动的视频查看和采集软件(现在的摄像头和操作系统基本都是支持UVC的,想查看你的是否支持请往下看)。它基于luvcview,但所有的控件都由GTK完成,从而提供一个更加用户友好的图形用户界面。它还是一视频录像软件,功能强大。可以使用该软件用摄像头录制自己的视频,可以实现底片、镜面反转、马赛克等效果。

使用代码调用摄像头

import cv2
import numpy as np
cv2.namedWindow('testcamera')
capture = cv2.VideoCapture(0)  #'0'代表从摄像头读入,'./video.avi'代表读入视频
capture.isOpened()
num = 0
while 1:
    ret, frame = capture.read()
    cv2.imshow('testcamera', frame)
    key = cv2.waitKey(1)
    num += 1
    if key == 1048603:  # 
        break

capture.release()
cv2.destroyAllWindows()

如果驱动安装失败

使用下面命令查看摄像头id。

$ lsusb

使用下面命令查看摄像头设备号

$ ls video*

使用下面命令查看设备名

$ cd /dev
$ dmesg | grep video

查看摄像头是否支持UVC协议

$ cd /dev
$ cat /sys/kernel/debug/usb/devices

出现下面一行就代表摄像头支持,Logitech Webcam C930e是我的设备名

S:  Product=Logitech Webcam C930e

接着执行,查看操作系统是否支持UVC协议,046d:0843是我的摄像头id。

$ lsusb -d 046d:0843 -v | grep "14 Video"

出现下面几行说明系统也是支持UVC协议的。

      bFunctionClass         14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video
      bInterfaceClass        14 Video

如果到了这里都没问题,只需要装驱动就可以了。

你可能感兴趣的:(linux,OpenCV,ubuntu,调用摄像头)