类型错误:python 中需要一个整数(得到类型 str)

我正在 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])

“路径”的输出是:


aruco.DICT_4X4_1000

之后我收到错误:


line 35, in generator

aruco_dict = aruco.Dictionary_get(path)

TypeError: an integer is required (got type str)

我该如何解决这个错误。请帮忙


哈士奇WWW
浏览 264回答 2
2回答

侃侃尔雅

"aruco.DICT_4X4_1000", 一个字符串, 不同于aruco.DICT_4X4_1000, 中的一个属性aruco。如果要以编程方式访问aruco属性的值DICT_4X4_1000,可以使用:getattr(aruco, "DICT_4X4_1000")所以你的获取代码path应该是:...path = getattr(aruco, dictionary)...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python