J'essaye de détecter la main avec OpenCV sur Python.
Je travaille sur cette image seuillée:
Et c'est contour état drawed:
Je suis en train de détecter la main, mais le contour est trop grand, il saisit tout mon corps.
J'ai besoin comme ceci:
Contours de fractionnement OpenCV
Mon code:
import cv2
orImage = cv2.imread("f.png")
image = cv2.cvtColor(orImage,cv2.COLOR_BGR2GRAY)
image = cv2.blur(image,(15,15))
(_,img_th) = cv2.threshold(image,96,255,1)
(contours,_) = cv2.findContours(img_th, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
if cv2.contourArea(c) > 15:
x,y,w,h = cv2.boundingRect(c)
cv2.rectangle(image,(x-20,y-20),(x+w+20,y+h+20),(0,255,0),2)
cv2.drawContours(image,contours,-1,(255,0,0),2)
cv2.imwrite("hi.jpg",image)
Merci!
Pour séparer le contour de la main du reste du corps, vous devez travailler sur l'algorithme de seuil. Avez-vous une image d'entrée réelle? –
Ou peut-être que vous pouvez détecter les bords dans l'image réelle et ensuite le superposer avec l'image de contour. –
Oui, oui; http://i.imgur.com/YOFXf9u.jpg mais je pense que j'ai besoin de quelque chose comme "zone max" –