ライブ ビデオ ストリームから自分の手を検出し、手のマスクを作成したいと思います。ただし、写真からわかるように、かなり悪い結果に達しています。
私の目標は手の動きを追跡することです。そのため、ビデオ ストリームを BGR から HSV 色空間に変換し、手の色を分離するために画像にしきい値を設定し、手の輪郭を見つけようとしましたが、最終結果は、私が達成したかったものではありません。
どうすれば最終結果を改善できますか?
import cv2
import numpy as np
cam = cv2.VideoCapture(1)
cam.set(3,640)
cam.set(4,480)
ret, image = cam.read()
skin_min = np.array([0, 40, 150],np.uint8)
skin_max = np.array([20, 150, 255],np.uint8)
while True:
ret, image = cam.read()
gaussian_blur = cv2.GaussianBlur(image,(5,5),0)
blur_hsv = cv2.cvtColor(gaussian_blur, cv2.COLOR_BGR2HSV)
#threshould using min and max values
tre_green = cv2.inRange(blur_hsv, skin_min, skin_max)
#getting object green contour
contours, hierarchy = cv2.findContours(tre_green,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
#draw contours
cv2.drawContours(image,contours,-1,(0,255,0),3)
cv2.imshow('real', image)
cv2.imshow('tre_green', tre_green)
key = cv2.waitKey(10)
if key == 27:
break
写真付きのリンクはこちら: https://picasaweb.google.com/103610822612915300423/February7201303 . 画像と輪郭、マスク、オリジナルの新しいリンク。 https://picasaweb.google.com/103610822612915300423/February7201304
そして、これが上からのサンプル写真です: