概要

 ラズパイにUSBカメラをつないで、写真を撮ることができた。


背景と目的

 以前、Raspberry Piで音声認識をさせてみたが、今度は画像を扱ってみたくなった。そこで、手持ちのUSBカメラを接続し、とりあえず写真を撮るところまでやってみる。


詳細

1.条件

 私の手元にあるUSBカメラは、BaffaloのBSW50KM02。Amazonで3000円弱と手ごろ。これを手持ちのラズパイ2に接続して使うことにする。

2.デバイスの認識

 カメラをUSB端子に接続し、lsusbを実行した結果が以下。Device005と表示された。これでデバイスは認識された。

Bus 001 Device 004: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
Bus 001 Device 005: ID 0411:0263 BUFFALO INC. (formerly MelCo., Inc.)
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
3.OpenCVのインストール

 次に、画像を扱うために画像処理フレームワークであるOpenCVをインストール。私は、Pythonでプログラムを作ろうと思っているので、Python版を以下のコマンドでインストール。

apt-get install python-opencv

 これだけで、OKなようだ。

4.写真を撮る

 いろいろWeb上で調べ、とりあえず写真を撮ってjpgファイルとして保存する。たったの4行でOKなようだ。2016/12/17 一部間違いがあったので修正

# OpenCVをインポート
import cv2
# カメラデバイスを取得
c = cv2.VideoCapture(0)
# readで画像をキャプチャ、imgにRGBのデータが入ってくる
r, img = c.read()
# 保存
cv2.imwrite('photo.jpg', img)

 録れた写真が以下。手持ちのぬいぐるみを撮ってみた。ちゃんと撮れていそう。

photo
図4 写真


まとめと今後の課題

 ラズパイにUSBカメラをつないで、写真を撮ることができた。OpenCVを使っていろいろ処理を試してみたい。