如何使用 python 中的列表绘制矩形

how to draw rectangles using list in python

for line, images_files in zip(lines, image_list):
                    info = line.split(',')

                    image_index = [int(info[0])]
                    box_coordiante1 = [info[2]]
                    box_coordiante2 = [info[3]]
                    box_coordiante3 = [info[4]]
                    box_coordiante4 = [info[5]]

                    prev_image_num = 1
                    for image_number in image_index:    #### read each other image_number

                        if prev_image_num != image_number: # if read 11111 but appear different number such as 2, 3 and ect
                            prev_image_num = image_number  # the different number becomes pre_image_num(it was 1)
                            #box_coordinate = []  # empty box_coordinate
                            #box_coordinate.append(info[2:6])
                            #print box_coordinate
                            # box_coordinate.append() #insert 2 to 6 axis
                        rect = plt.Rectangle((int(box_coordiante1), int(box_coordiante2)), int(box_coordiante3), int(box_coordiante4), linewidth=1, edgecolor='r', facecolor='none')
                        ax.add_patch(rect)

                    im = cv2.imread(images_files)
                    im = im[:, :, (2, 1, 0)]
                    #     # Display the image
                    plt.imshow(im)
                    plt.draw()
                    plt.pause(0.1)
                    plt.cla()

我应该在每张图片上画框。 为了在每张图片上显示框, 我想收集盒子的位置并同时显示它们。 所以我使用了一种使用 LIST 的方法 plt.Rectanle 但它说 "TypeError: int() argument must be a string or a number, not 'list'" 还有其他方法吗??

我对 Python 不是很熟悉,但您似乎想要在变量 image_indexbox_coordinateN 中使用纯数字。看起来您正在为它们分配单元素数组。尝试更改:

image_index = [int(info[0])] // list containing one element: int(info[0])
box_coordiante1 = [info[2]]
box_coordiante2 = [info[3]]
box_coordiante3 = [info[4]]
box_coordiante4 = [info[5]]

至:

image_index = int(info[0]) // number: int(info[0])
box_coordiante1 = info[2]
box_coordiante2 = info[3]
box_coordiante3 = info[4]
box_coordiante4 = info[5]

嗯,我刚刚做了。不过不知道是不是你想要的。

x = 10
y = 10
a = []
for unit for range(x):
    a.append(0)
for unit for range(y):
    print(a)

上面的回答粗心草率且不正确Python。

必须重写更正如下:

x = 10
y = 10
a = []
for unit in range(x):
    a.append(0)
for unit in range(y):
    print(a)