特定の色の物体を検出し,その物体の描く軌道をプロットするスクリプトです.

- OpenCV
- Numpy
git clone https://github.com/GOTO-TSL/marker-recognition.git
お手持ちのpython3環境にopenCVとnumpyをインストールしてください
使用したい動画ファイルをcolor_recognition.pyと同じディレクトリ内に入れてください.
サンプル動画ファイルがリポジトリ内に入っているのでそれを使っても大丈夫です.
def main():
#動画の読み込み
mov_file = "動画ファイル名"
...mov_file変数に動画ファイル名を入力してください
def red_detect(img):
#HSVでの色抽出
RED_MIN = np.array([150, 150, 20])
RED_MAX = np.array([180, 255, 255])
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv_img, RED_MIN, RED_MAX)
return maskred_detect関数内にあるHSV空間のしきい値設定のパラメータをお好みの色に調節してください
実行するとウィンドウが立ち上がって軌道がプロットされる動画が確認できます. color_recognition.pyの22行目
max_index = np.argmax(stats[:,4])でエラーが出る場合は,動画内に指定された色が検出されていない可能性があるので4に戻って調整するとうまくいくと思います.