【发布时间】:2017-05-15 02:28:27
【问题描述】:
我正在尝试在 Python 上使用 OpenCV 检测手部。
我正在处理这个阈值图像:
这就是轮廓绘制状态:
我正在尝试检测手,但轮廓太大,它会捕捉到我的整个身体。
我需要这样:
我的代码:
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)
谢谢!
【问题讨论】:
-
要将手部轮廓与身体其他部分分开,您需要使用阈值算法。你有实际的输入图像吗?
-
或者您可以检测实际图像中的边缘,然后将其与轮廓图像重叠。
-
是的,我愿意; i.imgur.com/YOFXf9u.jpg 但我想我需要像“最大面积”这样的东西