LoginSignup
3
5

More than 3 years have passed since last update.

RaspberryPi3でUSBカメラを扱う (Python3、OpenCV3)

Last updated at Posted at 2018-01-03

はじめに

OpenCV2系と3系ではビデオキャプチャ周りのAPIが大きく変わったようです。3系にバージョンアップした際に、2系のコードが動作しなくなり手間取ったため簡単にまとめておきます。

環境

以下の環境で動作確認しています。

デバイス等 バージョン
Raspberry Pi3 Model B -
RASPBIAN STRETCH WITH DESKTOP November 2017
Python3 3.5.3
OpenCV3 3.3.1
Logicool HD Webcam C270 -

Python3系+OpenCV3系でUSBカメラを扱う

OpenCV3系を使ってUSBカメラの動画を表示する処理は以下のような感じになります。

import cv2
import time

capture = cv2.VideoCapture(0)

capture.set(3,320) # 幅
capture.set(4,240) # 高さ
capture.set(5,30)  # FPS

while True:
  ret, image = capture.read()
  cv2.imshow("camera",image)
  if cv2.waitKey(10) > 0:
    break

capture.release()
cv2.destroyAllWindows()

Python3系+OpenCV2系でUSBカメラを扱う

ちなみにOpenCV2系では以下のようなコードを使用していました。

import cv2.cv as cv
import time

cv.NamedWindow("camera",1)

capture = cv.CaptureFromCAM(0)

cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH,320)
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT,240)

while True:
  img = cv.QueryFrame(capture)
  cv.ShowImage("camera",img)
  if cv.WaitKey(10) > 0:
    break

cv.DestroyAllWindows()

参考

以下のサイトを参考にさせて頂きました。ありがとうございます。
OpenCV 2系からOpenCV 3系に乗り換えた時に引っかかる"CV_CAP_PROP_XXX(propId)"の対応表

3
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5