カメラから指定した矩形領域の差分を取り、変化率が一定率以上になったときに音をならすPGM
予めカメラから差分を検出する矩形領域(2カ所)を登録し、別PGMでカメラからその矩形領域の差分が一定率
以上になったときに音をならすPGMです。(これを改良すると目や口を動かすだけで
太鼓の達人もどきのことができそうw...)
本PGMのgithubURL:
使い方
1.まず、registCaribRect.pyを実行し、差分を取る矩形領域を2カ所登録します。
(ドラッグで矩形領域をドラッグ、その後’a'キーで矩形領域Aを変数に保存、'b'キーで矩形領域Bを変数に保存、その後's'キーでそれぞれの矩形領域を'caribRects.txt'としてファイルに保存します。)
2.次にplaySoundByImageDiff.pyを以下のコマンドライン引数付きで呼び出します。
コマンドライン引数1:登録した矩形領域のファイル(caribRects.txtのファイルパス)
コマンドライン引数2:矩形領域Aの差分で音を鳴らす基準の変化率
コマンドライン引数3:矩形領域Bの差分で音を鳴らす基準の変化率
コマンドライン引数4:矩形領域Aの差分をとる間隔の秒数(浮動小数点)
コマンドライン引数5:矩形領域Bの差分をとる間隔の秒数(浮動小数点)
コマンドライン引数の例:
python playSoundByImageDiff.py C:\hogehoge\caribRects.txt 1.5 3.0 0.2 0.5
3.実行後矩形領域がそれぞれカメラ上の画面から矩形の線分として描画されるので、
その部分を瞬き等で差分が検出されると音を出します。
参考にしたサイト
opencv(python)のマウスイベントでカメラのライブ映像に線を描く - Qiita
ファイル入出力 — Pythonオンライン学習サービス PyQ(パイキュー)ドキュメント
Pythonで文字列を分割(区切り文字、改行、正規表現、文字数) | note.nkmk.me
文字列を数値に変換して数値と演算する | Python入門
Pythonで数字の文字列strを数値int, floatに変換 | note.nkmk.me
使用したサンプル音源サイト
ポケットサウンド – フリー効果音素材・BGMダウンロード【mp3】