充分利用cv2.contour x和y坐标开放CV Python和其存储到不同的变量

问题描述 投票:-2回答:3

我打印从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()
python python-3.x opencv contour opencv-contour
3个回答
0
投票

你知道解构?

data = [370, 269]
x, y = data

print(x)
# 370

print(y)
#269

或者,如果数据列表的列表:

data = [[370, 269]]
[[x, y]] = data

print(x)
# 370

print(y)
#269

0
投票

我制定了以下用于存储所有xy坐标一个轮廓:

x = []
y = []
for k in contours:
    for i in k:
        for j in i:
            x.append(j[0])
            y.append(j[1])

我相信一定有一个更快的方法!


0
投票
kx = contours[k][:,0,0]
ky = contours[k][:,0,1]
© www.soinside.com 2019 - 2024. All rights reserved.