python - 如何使用序列设置数组元素?
问题描述
我的问题很简单。我有中心值和半径值。我想将这些值分别放入中心和半径数组中。
centers[0][i], radius[0][i] = cv.minEnclosingCircle(contours_poly[i])
当我运行我的代码时,我在这一行中得到“使用序列设置数组元素”。
from __future__ import print_function
import cv2 as cv
import numpy as np
import argparse
import random as rng
rng.seed(12345)
threshold = 100
parser = argparse.ArgumentParser(description='Code for Creating Bounding boxes and circles for contours tutorial.')
parser.add_argument('--input', help='Path to input image.', default='stuff.jpg')
args = parser.parse_args()
src = cv.imread('training3.jpg')
if src is None:
print('Could not open or find the image:', args.input)
exit(0)
# Convert image to gray and blur it
src_gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
src_gray = cv.blur(src_gray, (3,3))
source_window = 'Source'
cv.namedWindow(source_window)
cv.imshow(source_window, src)
canny_output = cv.Canny(src_gray, threshold, threshold * 2)
contours, _ = cv.findContours(canny_output, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
contours_poly = [None]*len(contours)
boundRect = [None]*len(contours)
centers = np.zeros([2,len(contours)])
radius = np.zeros([1,len(contours)])
for i, c in enumerate(contours):
contours_poly[i] = cv.approxPolyDP(c, 3, True)
boundRect[i] = cv.boundingRect(contours_poly[i])
centers[0][i], radius[0][i] = cv.minEnclosingCircle(contours_poly[i])
cv.minEnclosureCircle(contours_poly[i]) 内部是:
cv.minEnclosingCircle(contours_poly[0]) = ((688.5, 958.5), 2.9155757427215576)
例如,我想得到这些结果:
centers[0] = (688.5, 958.5)
radius[0] = 2.9155757427215576
我怎么解决这个问题?谢谢您的帮助 :)
解决方案
推荐阅读
- python - pytest log_cli + 标准日志记录 = 中断 doctest
- css - 如何在 Wix Editor X 中添加投影
- python - 在 streamlit 上传不同扩展文件的问题
- python - 如何从 cv2 (opencv) 导入特定函数?
- amazon-web-services - 属性 Subscription 的值必须是对象列表
- c# - 在 asp.net mvc 中,如何使用可变数量的字段建模 json 响应
- python - Emacs 中的 Python:跳转到全局常量的定义
- typescript - 测试非可选类型
- reactjs - 我应该将 Redux 用于用户配置文件吗?
- javascript - 如何使脚本在 Google Chrome 扩展 HTML 模板中执行?