Функция cv.waitKey([, delay])
, как объясняется в документации , может принимать значение, которое вы можете считать тайм-аутом.Это означает, что вы можете передать 10 и заблокировать функцию на 10 миллисекунд для ввода с клавиатуры.
Для вашего случая я не вижу, где в коде вы используете свою функцию show
, поэтому я могуЯ не знаю точно, как вы должны сделать это, чтобы иметь такое поведение, но в качестве псевдокода для вас, чтобы получить идею, это будет что-то вроде:
filenames = [] #lets assume your filenames are here
for f in filenames:
img = cv2.imread(f)
cv2.imshow("image", img)
cv2.waitKey(10)
Если вы хотите сделать паузу в начале, вы можетесделать imshow вне цикла и ждать ключ с 0 после него.Кроме того, вы можете играть с количеством времени, например, 5000, чтобы отобразить его в течение 5 секунд, прежде чем продолжить.
Но если обработка занимает слишком много времени, вы можете подумать о том, чтобы поместить часть imshow в поток, так как окно может не отвечать на запросы после waitKey, пока оно ожидает завершения процесса извлечения объектов.Кроме того, было бы хорошо добавить что-то вроде 'q' для выхода из приложения или что-то в этом роде ... Это всего лишь несколько советов:)