我打印从cv2.findContours轮廓。它打印出的类似:[370 269]我要的是让370,并将其存储到一个变量。
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower = np.array([0,0,255])
upper = np.array([255,255,255])
imgThreshHigh = cv2.inRange(hsv, lower, upper)
thresh = imgThreshHigh.copy()
_,contours,_ = cv2.findContours(thresh,
cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
print(contours)
cv2.imshow('frame',frame)
cv2.imshow('Object',thresh)
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()
你知道解构?
data = [370, 269]
x, y = data
print(x)
# 370
print(y)
#269
或者,如果数据列表的列表:
data = [[370, 269]]
[[x, y]] = data
print(x)
# 370
print(y)
#269
我制定了以下用于存储所有x
和y
坐标一个轮廓:
x = []
y = []
for k in contours:
for i in k:
for j in i:
x.append(j[0])
y.append(j[1])
我相信一定有一个更快的方法!
kx = contours[k][:,0,0]
ky = contours[k][:,0,1]