【ラズパイで猫ちゃんカメラ】 その1 WEBカメラを繋いで起動してみる OpenCV

Raspberry Pi

前回はものを集めてSDカードにRaspberry Pi OSを書き込み、リモートデスクトップまでやりました。

今回はカメラを繋いで起動までしてみます(^^)

今回からはmacよりリモートデスクトップして作業します(余談あり)

WEBカメラの認識

まずはじめに、カメラ(USBデバイス)を認識しているかチェックします

ラズパイが起動した状態で、空いているUSBポートに差し込んでいます

使っているWEBカメラはこちら

Amazon.co.jp: 【2011年モデル】ELECOM Webカメラ 300万画素 マイク内蔵 イヤホンマイク付属 FullHD対応 ピンク UCAM-DLE300TPN : パソコン・周辺機器
Amazon.co.jp: 【2011年モデル】ELECOM Webカメラ 300万画素 マイク内蔵 イヤホンマイク付属 FullHD対応 ピンク UCAM-DLE300TPN : パソコン・周辺機器

だいぶ古いですねw

ラズパイでターミナルを開き、以下を入力してUSBデバイスをチェックします

lsusb

一番上に Elecom Co., Ltd とあるので認識してるっぽい おk

使っているミニディスプレイはこちら(なぜかリンクが上手く貼れなかったので、名前でググってください)

Quimat 3.5インチタッチスクリーン HDMIモニタTFT LCDディスプレイ Raspberry Pi 3 2 Model B Rpi B B+ A A+ 映画 アーケードゲーム オーディオ入力 RPi GPIOブレークアウト拡張ボード 保護ケースキット アクリル(透明) QC35C

制御にはOpenCVを使う

ググってみると、webカメラの制御にはOpenCVを使っている事例が多かったので真似します

OpenCVはPythonで書くので、まずはラズパイに入っているPythonのバージョンを確認します

Python2と3が入っていますが、Python3を使います

ターミナルで以下を入力してPython3のバージョン確認します

python3 -VV

Python 3.7.3 でした

忘れてましたが、パッケージをインストールする前に以下を脳死で実行してラズパイを最新にします

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update
sudo reboot

OpenCVをインストールする

RaspberryPiへのOpenCVインストール手順 - Qiita
仕事でRaspberryPiにOpenCVを使う機会があったのですが、OpenCV公式ページの情報だけではインストールできず、信頼できる情報を見つけるのに苦労したため情報共有したいと思います。 記事の流れ 1.インストールの方法...

こちらを参考にさせていただきました(^^)

非公式のビルド済パッケージ(opencv-python)をインストールします

上から順に実行します

sudo pip install --upgrade pip

↓これは1行で入力します

sudo apt install libavutil56 libcairo-gobject2 libgtk-3-0 libqtgui4 libpango-1.0-0 libqtcore4 libavcodec58 libcairo2 libswscale5 libtiff5 libqt4-test libatk1.0-0 libavformat58 libgdk-pixbuf2.0-0 libilmbase23 libjasper1 libopenexr23 libpangocairo-1.0-0 libwebp6
sudo pip3 install opencv-python

このときには opencv-python-4.5.3.56 が入りました

しかし参考にもあるように、私の場合もimportできませんでした

そこでこちらを参考にさせていただき、バージョンを下げ、ライブラリを追加でインストールしたらimportできました

バージョンも合わせてあります

Raspberry Pi 4にOpenCVをインストールしてPythonで動作確認 – 株式会社インデペンデンスシステムズ横浜
sudo pip3 install opencv-python==4.5.1.48
sudo apt-get install libatlas-base-dev

今回みたいにOpenCVの別のバージョンをインストールし直したいときは、続けてインストールして大丈夫です

先にインストールされたバージョンはアンインストールされます

WEBカメラを起動する

それではWEBカメラをテストするためのpythonファイルを用意します

エディタはラズパイにもともと入っている Thonny Python IDE を使いました

IDEなので、すぐに実行できて便利(^^)

ラズパイマーク ー プログラミング ー Thonny Python IDE で開きます

サンプルプログラムは以下を拝借させていただきました

Pythonでカメラを制御する【研究用】 - Qiita
はじめに 前回の記事 pySerialを使った顕微鏡用多波長LED光源の高速波長切り替えについて 前回は顕微鏡用多波長LED光源の制御方法について書きました。今回はPythonによるカメラ制御について書きたいと思います。顕微鏡...

これを.pyの拡張子で保存します

私はopencv-test.pyとしてデスクトップに保存しました

import cv2
 
# VideoCapture オブジェクトを取得します
capture = cv2.VideoCapture(0)
 
while(True):
    ret, frame = capture.read()
    # resize the window
    windowsize = (800, 600)
    frame = cv2.resize(frame, windowsize)

    cv2.imshow('title',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'): # control + qが押されたら
         cv2.imwrite('test.tif', frame) # save
         break

capture.release()
cv2.destroyAllWindows()

そのままではカメラが起動しなかったのですが、capture = cv2.VideoCapture(0)の引数を0としたら起動しました

カメラはUSB接続のWEBカメラのみです

起動中はwhile中で絶えずcaptureしているため、動画となります

cv2.imwrite(‘test.tif’, frame) # save

で、control + qでwhileから抜けてカメラウィンドを閉じる際にtest.tifとして画像を保存します(サンプルプログラムから追加した部分です)

画像は.pyファイルと同じところに保存されるのでデスクトップに保存されます

とりあえず動作してよかった(^^)

10年前のWEBカメラにしては画質はまずまずですな!

余談 iPhoneテザリングだとipアドレスがわからん

今回はiPhoneをテザリング親機にしてmacとラズパイを繋いでいます

iPhoneは接続デバイスのipアドレスを確認する方法が無いので困りましたが、ラズパイにミニディスプレイを付けているので、USBマウスを操作してラズパイ上のVNCアプリを開いてラズパイに割り振られているipアドレスを確認しました(前回はAndroidを親機にしていました(ipアドレスとmacアドレスが表示されて便利))

ですので、最初だけディスプレイ、キーボード、マウスが必要です

そもそも、iPhoneに接続するためにラズパイに直接キーボードからパスワードを入力する必要があるんですけどね\(^o^)/

あとはmacよりリモートデスクトップして作業します

ちなみに、Fingアプリでは確認できず(Wi-Fiに接続していないと無理ぽ)

ipアドレスは172.20.10.2 でした

それか、macとiPhoneを繋いでいるのなら、以下の方法でターミナルからも確認できました

iphoneでテザリング中に接続されて… - Apple コミュニティ

コメント

タイトルとURLをコピーしました