Как нарисовать границу для большого набора данных изображений (отображение последовательных изображений)? - PullRequest
0 голосов
/ 15 июня 2019

Я загружаю много изображений, чтобы поместить мою модель. Я столкнулся с проблемой создания рамки.проблема в том, что когда я запускаю код, все фотографии всплывают одновременно, я пытаюсь сделать так, чтобы он отображался последовательно, чтобы он не работал, плюс это последнее открытое фото, я могу нанести на него прямоугольник, но другие фотографии этого не сделалипозвольте мне нарисовать прямоугольник

import os
import cv2
from matplotlib.widgets import RectangleSelector
import matplotlib.pyplot as plt    

функция закрытия открываемой фотографии

def onkeypress(event):
    global object_list
    global tl_list
    global br_list
    global img
    if event.key =='q':
        print(tl_list, br_list)
        tl_list = []
        br_list = []
        object_list = []
        img = None
        plt.close()

это цикл для открытия фотографий и рисования прямоугольников

if __name__ == '__main__' :
    for n, image_file in enumerate(os.scandir(image_folder)):
        img = image_file
        fig, ax = plt.subplots(1)
        #mngr = plt.get_current_fig_manager()
        #mngr.window.setGeometry(250, 120, 1280, 1024)
        image = cv2.imread(image_file.path)
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        ax.imshow(image)

        toggle_selector.RS = RectangleSelector(
            ax, line_select_callback,
            drawtype = 'box', useblit = True,
            button = [1], minspanx = 5, minspany = 5,
            spancoords = 'pixels', interactive = True
        )
        #plt.connect('button_press_event', line_select_callback)
        bbox = plt.connect('key_press_event', toggle_selector)
        key = plt.connect('key_press_event', onkeypress)
        #cv2.waitKey(0)
        plt.imshow(image)
        plt.show()

я ожидаю, что вывод этой фотографии из каталога откроется, определите граничную рамку и нажмите «q», чтобы закрыть ее и открыть следующую и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...