前回はコマンドでカメラを操作しましたが、
今回はプログラムからカメラを使用します。
やり方は2種類あるみたいで、
python-picameraを使用する方法と、
openCVを使用する方法です。
今回はopenCVを使用してみます。
なぜなら、openCVは画像解析なんかもできるので、今後も応用が利くかも、と思いましたので。
openCVのインストール
$ sudo apt-get install python3-opencv
pip3を使用するインストール方法もネットにありましたが、
こちらはインストールの過程でビルド処理がありますので、
実行すると、一日コースです。
apt-getを使用したほうが短時間で完了します。
(それでも数分かかります。)
早速実行してみる
from datetime import datetime
import cv2, os
def main():
cam = cv2.VideoCapture(0)
if cam == None:
return False
while True:
# カメラから映像を読み込む
_, img = cam.read()
cv2.imshow("preview", img)
# キーを入力した際に撮影を終了する
if cv2.waitKey(1) < 255: break
# 事後処理
cam.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main()
cam.read()を実行すると、処理結果と、frameデータが取得できます。
ここでは処理結果は使用しないので、_ と書いています。
imshow()を実行するとframeのデータを画面に表示されます。
それをwhileループしているので、プレビューのように映像が表示されます。
※ラズパイの画面をVNCのリモートデスクトップで表示させています。
最終的には、このframeデータをリモートに飛ばして表示させたい。
openCVは調べてみると、いろいろな事ができるみたいなので、もうちょっと調べてみます。