使用opencv python进行面部去除

使用opencv python进行面部去除,python,opencv,Python,Opencv,嗨,我想用基于肤色的方法检测和跟踪手部,但我不需要在输出视频中看到人脸或任何肤色(我的意思是我只需要左手跟踪)。 谢谢 你可以训练。它适用于人脸检测,也适用于手部检测谢谢vitalii我训练OpenCV haar cascades,但效果不好,所以我想使用肤色,我只想hand@AmoorEng也许你的训练/验证设置不是很好?无论如何,基于肤色的算法将有很多启发,它不是通用的解决方案。也许你会尝试像Theano或CaffeThanks这样的深度学习框架。我会看看Theano或Caffe impor

嗨,我想用基于肤色的方法检测和跟踪手部,但我不需要在输出视频中看到人脸或任何肤色(我的意思是我只需要左手跟踪)。 谢谢


你可以训练。它适用于人脸检测,也适用于手部检测

谢谢vitalii我训练OpenCV haar cascades,但效果不好,所以我想使用肤色,我只想hand@AmoorEng也许你的训练/验证设置不是很好?无论如何,基于肤色的算法将有很多启发,它不是通用的解决方案。也许你会尝试像Theano或CaffeThanks这样的深度学习框架。我会看看Theano或Caffe
import cv2
import numpy as np

# Range for finding skin color in YCrCb
Low_YCrCb = np.array([0,125,80],np.uint8)
High_YCrCb = np.array([255,169,133],np.uint8)


while True 

    # grab frames from Video
    _, img = videoFrame.read()

    # Convert to YCrCb --
    img_YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB)

    # Find ROI in YCrCb 
    skin_ROI = cv2.inRange(img_YCrCb, Low_YCrCb, High_YCrCb)

    # Find contour in skin region
    _, contours, _= cv2.findContours(skinROI, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

    # Draw the contour --
    for i, cnt in enumerate(contours):
        area = cv2.contourArea(cnt)
        if area > 500:
            cv2.drawContours(img, contours, i, (255, 0, 0), 2)

    # Results
    cv2.imshow('Result',img)

cv2.waitKey(0)
cv2.destroyWindow('Result')
videoFrame.release()