はじめに
我が家にはオカメインコの巣を観察するために
webカメラとラズパイを使って監視カメラを作ってみる
ダンボールの箱がオカメインコの巣
一日の大半をこの中で過ごしている
巣の入り口部分いカメラをセット
使ったもの
raspberry pi 3b
Raspbian 9.6
iBUFFALO マイク内蔵120万画素Webカメラ HD720p対応モデル ブラック BSWHD06MBK
- 発売日: 2013/12/15
- メディア: Personal Computers
方針
ラズパイに立ち上げたappacheサーバーのドキュメントルート
フォルダに画像を随時保存していく。
画像はwebブラウザから見れるようにしておき、
約1秒ごとにリロードし続ける。
webCamera.py
import cv2 from time import sleep cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_FPS, 60) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) cap.set(cv2.CAP_PROP_FRAME_HEIGHT,720) i = 0 while True: ret, frame = cap.read() #ドキュメントルートに保存する。写真の名前をナンバリング cv2.imwrite("/var/www/image/" + str(i) + ".jpg", frame) i = i + 1 #500ms停止 sleep(0.5) #9000枚保存したら上書き if(i>9000): i=0
index.html
<html> <head> <meta charset="utf-8"> </head> <body> <img src="0.jpg" name="jpg"> <script type="text/javascript"> i = 0; imgTimer(); function imgTimer() { i++; console.log(i); //画像パスのの書き換え document.jpg.src = i.toString(10)+".jpg"; //900msごとに更新 setTimeout("imgTimer()", 900); } </script> </body> </html>
pythonファイルを実行して
$python3 webCamera.py
ブラウザから見るとこんな感じ
撮った写真を動画にしてみる
撮影した画像を動画に変換してみる
$ ffmpeg -f image2 -r 15 -i %d.jpg -r 15 -an -vcodec libx264 -pix_fmt yuv420p video.mp4
<参考文献>
FlaskとOpenCVを使ってWEBカメラで撮影した画像をストリーミングする - Qiita