OpenCVで背景差分を取得するプログラムです。びっくりするほど簡単にできてしまいますね。 ポイントとしては、
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cap = cv2.VideoCapture("sample.avi") | |
subtractor = cv2.bgsegm.createBackgroundSubtractorMOG() | |
while True: | |
# 画像を取得 | |
ret, frame = cap.read() | |
if not ret: | |
break | |
detect_mask = subtractor.apply(frame, learningRate=0) | |
#差分表示 | |
cv2.imshow("detect_mask", detect_mask) | |
cap.release() | |
cv2.destroyAllWindows() |
- OpenCVには複数の背景差分アルゴリズムの関数が用意されている
- 戻り値として、背景画素を0、前景画素を255とした2値画像が返される
というところです。これを応用すれば、人物だけ取り出すということも容易にできるわけです。
0 件のコメント:
コメントを投稿