前提・実現したいこと
pythonでOpencvとHOGを使用して人物検出,抽出を行いたいです.人物を検出して矩形で捉えることができるプログラムからどのようなプログラムを書けばその矩形(人物を囲った長方形)を抽出することができるでしょうか.
人物検出プログラム
import cv2
#処理したい画像を選択
img_name = 'IMG_0651.jpeg'
im = cv2.imread(img_name)
#HoG特徴量検出器を作成
hog = cv2.HOGDescriptor()
#サポートベクタマシンによる人検出の重みを設定
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
#detectMultiScale() のパラメータ
hogParams = {'winStride': (8, 8), 'padding': (32, 32), 'scale': 1.05,"hitThreshold":0,"finalThreshold":1 }
#humanには検出した短形の座標の一覧が入っている
#x,y:短形の左上の座標 w,y:短形の幅と高さ
human, r = hog.detectMultiScale(im, **hogParams)
#検出した短形の座標の一覧をもとに画像に短形を描画している
for (x, y, w, h) in human:
cv2.rectangle(im, (x, y),(x+w, y+h),(0,50,255), 3)
#検出した画像を保存
cv2.imwrite('out_default_4'+img_name,im)
cv2.imshow('original',im) #画像表示
cv2.waitKey()
あなたの回答
tips
プレビュー