2016-08-21 3 views
2
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() 인수는 문자열 또는 숫자 여야하며 '목록'이 아니어야합니다." 다른 방법이 있습니까 ??파이썬에서 목록을 사용하여 사각형을 그리는 방법

답변

0

저는 파이썬에 익숙하지 않지만, 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] 
관련 문제