Я пытаюсь нарисовать круг только по контуру, который находится ближе всего к центральной позиции кадра (192,108), и я получаю ошибку «индекс списка вне диапазона»
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 не соответствует ожиданиямтак что должна быть какая-то проблема с моими списками, но я не знаю, где