我试着只在轮廓上画圆,这是最接近的中心位置帧(192108),我得到错误“列表索引超出范围”
X = []
Y = []
Z = []
distance = 0
contours, _ = cv2.findContours(eroded, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
for contour in contours:
area = cv2.contourArea(contour)
if area > 500:
M = cv2.moments(contour)
if M["m00"] != 0.0:
cX = int(M["m10"] / M["m00"])
cY = int(M["m01"] / M["m00"])
X.append(cX)
print(X)
Y.append(cY)
lenghtx = len(X)
for x in range(lenghtx):
distance = math.sqrt( ((192-X[x])**2)+((108-Y[x])**2) )
Z.append(distance)
#print(distance)
#print(lenghtx)
#print (min (Z),'min' )
minimum = min(Z)
minindex = Z.index(min(Z))
print(minindex)
cv2.circle(frame, (X[minindex], Y[minindex]), 5, (0, 255, 0), -1)
cv2.drawContours(frame, contours, -1, (0, 0, 255), 2)
我试着打印X坐标的列表和minindex的值,得到了这样的结果
[166] - list of X
0 - minindex
[166,92,112] - list of X
5 - minindex
首先是好的,但当有更多的轮廓在帧(更多的坐标),minindex值不是我所期望的,所以一定有一些问题,我的名单,但我不知道在哪里
目前没有回答
相关问题 更多 >
编程相关推荐