我正在Python中使用opencvaruco。我正在尝试生成不同目录的多个代码。为了在一次内生成它,我在一个循环中使用这个函数。例如list1=[1,2,3,4],comb=[501002501000],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”的输出是:
^{pr2}$在那之后,我得到了错误:
line 35, in generator
aruco_dict = aruco.Dictionary_get(path)
TypeError: an integer is required (got type str)
如何解决此错误。请帮忙
正如我在http://www.philipzucker.com/aruco-in-opencv/看到的,
aruco.DICT_6X6_250
是实常量(int)。在你的罐子里是一个字符串"aruco.DICT_6X6_250"
,这是错误的主要原因。为了澄清,只需尝试以下2个语句来代替path = '.'.join(path)
。在有效
path = aruco.DICT_4X4_1000
无效
path = "aruco.DICT_4X4_1000"
我建议解决这类问题的方法是创建名为arcuo的任何模块_常量.py然后将下面的内容放入其中。在
最后,让你在文件中使用相同的值。在
^{pr2}$"aruco.DICT_4X4_1000"
是一个字符串,它与aruco
中的属性aruco.DICT_4X4_1000
不同。在如果要以编程方式访问属性
aruco
的值,can use:因此,获取
^{pr2}$path
的代码应该是:相关问题 更多 >
编程相关推荐