前提・実現したいこと
現在、ZOOMのようにWebカメラから人物だけ切り抜いて表示させる
プログラムを作ろうとしています。
環境としては
Windows10
python3.8.1
opencvを使っています。
Haarlike特徴と背景差分を組合せて、
人の体だけ表示させるものを作りたいのですが、具体的な手法が分かりません。
今のところ、書いたプログラムがいかのよう
import cv2
import numpy as np
import matplotlib.pyplot as plt
HAAR_FILE = "haarcascade_upperbody.xml"
#HaarLike 特徴抽出アルゴリズムから分類気を作成
cascade = cv2.CascadeClassifier(HAAR_FILE)
#カメラの映像を読み込み
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
h,w,ch = frame.shape
frame_back = np.zeros((h,w,ch), dtype= np.float32)
while True:
ret, frame = cap.read()
#背景差分の取得 frame_diff = cv2.absdiff(frame.astype(np.float32), frame_back) cv2.accumulateWeighted(frame, frame_back, 0.8) cv2.imshow("img",frame_diff.astype(np.uint8)) #sが押されたら写真を保存して終了 if cv2.waitKey(1) & 0xFF == ord('s'): #cv2.imwrite("test.jpg",frame) break
cap.release()
cv2.destroyAllWindows()
回答1件
あなたの回答
tips
プレビュー