【发布时间】:2019-04-14 13:31:35
【问题描述】:
我正在 Python 中使用 OpenCV ArUco。我正在尝试生成不同目录的多个代码。为了一次生成它,我在循环中使用这个函数。例如 list1 =[1,2,3,4],comb = [50,100,250,1000],ids = [1,22,3,45]
def generator(bsize,comb,ids):
bitsize = [bsize]+['X']+[bsize]
bitz = ''.join(bitsize)
dicts = ['DICT']+[bitz]+[comb]
dictionary = '_'.join(dicts)
print(dictionary)
path = ['aruco']+[dictionary]
print(path)
path = '.'.join(path)
print(path)
aruco_dict = aruco.Dictionary_get(path)
img = aruco.drawMarker(aruco_dict, ids, bsize)
cv2.imshow('frame',img)
for i in range(0,7):
generator(list1[i],list2[i],list3[i])
'path' 的输出是:
aruco.DICT_4X4_1000
之后我收到错误:
line 35, in generator
aruco_dict = aruco.Dictionary_get(path)
TypeError: an integer is required (got type str)
如何解决此错误。请帮忙
【问题讨论】:
-
如何“给定”参数?错误消息似乎很清楚,代码在某个地方得到了一个字符串,它需要一个整数。例如,'3' 和 3 之间是有区别的。
-
您需要发布更多的回溯以便我们理解。也许可以编辑您的问题并发布完整的回溯?
-
据我所知,
Dictionary_get()采用 int 参数。字符串上的join()方法返回一个字符串。在您存储在path变量中的情况下,最后您将该字符串传递给Dictionary_get()。只需检查参数。
标签: python opencv augmented-reality aruco