版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/daoer_sofu/article/details/102514622
tmp = frame.reshape((-1,3))
tmp = np.float32(tmp)
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
_,label,center = cv2.kmeans(tmp,2,None,criteria,10,cv2.KMEANS_RANDOM_CENTERS) // 其中第二个参数,分类个数
center = np.uint8(center)
tmp = center[label.flatten()]
frame = tmp.reshape((frame.shape))
设置目标源:
hsv_roi = cv2.cvtColor(src[200:300,225:275], cv2.COLOR_RGB2HSV)
mask = cv2.inRange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.)))
roi_hist = cv2.calcHist([hsv_roi],[0],mask,[180],[0,180])
cv2.normalize(roi_hist,roi_hist,0,255,cv2.NORM_MINMAX)
term_crit = ( cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1 )
检测代码
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
dst = cv2.calcBackProject([hsv],[0],roi_hist,[0,180],1)
ret, _ = cv2.CamShift(dst, (225,200,50,100), term_crit)
pts = cv2.boxPoints(ret)
pts = np.int0(pts)
frame = cv2.polylines(frame,[pts],True, 255,2)
^_^ 参数有些问题,鞋检测位置有偏差