PythonでOpenCV 背景差分やってみた

前にOpenCV使ってカメラの起動までやったので、もう少しだけ処理を追加してみた。

 

今回は背景差分処理を追加

ソースは⬇︎こんな感じ

import numpy as np
# OpenCV のインポート
import cv2

# VideoCaptureのインスタンスを作成する。
# 引数でカメラを選べれる。
cap = cv2.VideoCapture(0)

cap2 = cv2.createBackgroundSubtractorMOG2()

while True:
# VideoCaptureから1フレーム読み込む
ret, frame = cap.read()

mask = cap2.apply(frame)

# 加工なし画像を表示する
cv2.imshow('Raw Frame', mask)

# キー入力を1ms待って、k が27(ESC)だったらBreakする
k = cv2.waitKey(1)
if k == 27:
break

# キャプチャをリリースして、ウィンドウをすべて閉じる
cap.release()
cv2.destroyAllWindows()

 

処理としては以下のメソッドで背景オブジェクトを取得
cap2 = cv2.createBackgroundSubtractorMOG2()

 

マスク(特定部分を抽出する)処理して
mask = cap2.apply(frame)

 

実行結果は、こんな感じ!

youtu.be

 

簡単!