OpenCV
RaspberryPi
Raspberry
zero
usbcam

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

More than 1 year has passed since last update.


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にあるもの) で動くことを確認しました。