カワセミ
コメントを残す
10秒間隔で画像を400枚 jpgファイルとして保存
事前にM-JPEG streamerがインストールされ、アドレスxxx.xxx.xxx.xxx:8080で稼働している環境で、ファイル名 T0000.jpgからT0399.jpgとして画像を保存します。
import time
import cv2
# VideoCapture オブジェクトを取得します
URL = "http://xxx.xxx.xxx.xxx:8080/?action=stream"
capture = cv2.VideoCapture(URL)
for n in range(400):
ret, frame = capture.read()
name = "T" + '{:04d}'.format(n)+".jpg"
print(name)
cv2.imwrite(name, frame)
time.sleep(10)
print("Done!")
jpgファイルからmp4動画を生成
import glob
import cv2
img_array = []
for filename in sorted(glob.glob("*.jpg")):
print(filename)
img = cv2.imread(filename)
height, width, layers = img.shape
size = (width, height)
img_array.append(img)
name = 'project.mp4'
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'mp4v'), 5.0, size)
for i in range(len(img_array)):
out.write(img_array[i])
out.release()
生成したmp4動画の編集(不要部分の削除、回転、再生速度の調整など)には、Windows10標準のソフト「フォト」が便利。
作例
Raspberry Pi3Bの環境
$ uname -a
Linux ps2 5.10.52-v7+ #1440 SMP Tue Jul 27 09:54:13 BST 2021 armv7l GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
ダウンロードサイトからLinux 32bit ARM(armfh)をダウンロードしてインストール
$ sudo dpkg -i Repetier-Server-1.1.2-Linux.deb
インストールしたら、ブラウザで http://xxx.xxx.xxx.xxx:3344 をアクセスすると、プリンターの設定画面が表示されるので、マニュアルに従ってプリンターの追加・設定を行います。
Webcam のインストール
Repetier-ServerでWebcamの機能を利用するには、有料のプロバージョンが必要なため、 次のような画面となって、サーバーでは表示できません。
ただし、インストールしたWebcamのストリーミング機能は動作しているようで、ブラウザーで http://xxx.xxx.xxx.xxx:8080 をアクセスすると次のようにストリーミング映像を見ることができました。(カメラは窓の外向けに設置)
Start, Stop and Restart Repetier-Server
# Start server
sudo service RepetierServer start
sudo /etc/init.d/RepetierServer start
# Stop server
sudo service RepetierServer stop
sudo /etc/init.d/RepetierServer stop
# Restart server
sudo service RepetierServer stop
sudo /etc/init.d/RepetierServer restart