LoginSignup
8

More than 5 years have passed since last update.

Raspberry Pi (Zero (W)) 上で OpenCV を動かして USB Camera からの画像をJPEG保存してみる

Last updated at Posted at 2017-05-03

Overview

Raspberry Pi Zero (W) の setup を しました。

ほとんどのことは、ESP8266やESP32でできますが、難しいことがあります。それは、USB.
というわけで、せっかくなので、Raspberry Pi Zero (W) に USB Cameraを接続して、キャプチャーできるようにします。

用意するもの

  • Raspberry Pi (Zero (W))
  • micro USB - USB A アダプタ (最近は100均ショップでも購入できますね。)
  • USB Camera (私は余っていた Logitech, Inc. Webcam C600)

Setup

まずは、USBとして認識しているかどうかを確認しましょう

$ lsusb
lsusb
Bus 001 Device 006: ID 046d:0808 Logitech, Inc. Webcam C600
..snip..

$ ls /dev/video*
/dev/video0

こんな風に認識していればOkです。

とりあえず、fswebcam でキャプチャーしてみる

$ sudo apt-get install fswebcam

$ fswebcam -r 1280x720 -S 3 -F 1 hoge.jpg

みたいにして、キャプチャーできればOkです。

  • -F は、キャプチャーするフレーム (どうも合成してくれる模様)
  • -S は、最初にスキップするフレーム (最初に変なフレームが出る場合向け)

OpenCV で キャプチャーしてみる

OpenCV with python の setup

$ sudo apt-get install libopencv-dev python-opencv

OpenCV で キャプチャーしてみる

simpleCvCap.py
# coding: utf-8

import cv2

def captureImage(filename):
    cap = cv2.VideoCapture(0)

    ret, frame = cap.read()
    cv2.imwrite(filename,frame)

    cap.release()

if __name__ == '__main__':
    captureImage("tmp.jpg")
    cv2.destroyAllWindows()
$ python simpleCvCap.py

的な。

ちゃんと、解像度とか設定できるようにしたものを、 https://github.com/hidenorly/opencv-cap においておきました。

Mac側 の OpenCV の 環境構築

Mac側も同じように環境構築しておくと、デバッグ効率が上がります。
主にパフォーマンの違いから・・・。

$ brew update
$ brew tap homebrew/science
$ brew install cmake pkg-config jpeg libpng libtiff eigen openexr numpy
$ brew install tbb
$ brew install ffmpeg
$ brew install opencv3 --with-ffmpeg --with-tbb --with-python
$ echo 'export PATH="/usr/local/opt/opencv3/bin:$PATH"' >> ~/.bash_profile
$ brew link opencv3 --force

で、とりあえず、環境構築した上で、上のpython (githubにあるもの) で動くことを確認しました。

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
8