Насколько точен Python OpenCV waitKey () для отображения изображения на определенную продолжительность? - PullRequest
0 голосов
/ 23 марта 2020

Мне нравилось отображать изображение в течение определенной продолжительности, например, 350 мс, а затем отображать следующее. Для этого я подумал, что могу использовать функцию cv2.waitKey() из библиотеки Python OpenCV. Вот мой код:

def display(filename, windows_height=935, windows_width=1826, wait_time=290):
img = cv2.imread(filename)
img_resize = cv2.resize(img, (windows_width, windows_height))
cv2.imshow('test', img_resize)
cv2.waitKey(wait_time)
cv2.destroyAllWindows()


if __name__ == '__main__':
    image_path1 = 'test_image_1.png'
    image_path2 = 'test_image_2.png'
    # image_list = [image_path1, image_path2]
    for x in range(10):
        for index, image in enumerate(image_list):
            start_time = time.time()
            display(image, windows_width=920, windows_height=540, wait_time=290)
            end_time = time.time()
            elapsed_time = end_time - start_time
            print('elapsed time of {} iteration of photo {} in millisecond: {}'.format(x, index, elapsed_time * 1000))

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

Мой вопрос:

  1. Насколько точен или точен метод OpenCV waitKey ()? Я знаю, cv2.waitKey() принимает аргумент в миллисекундах. Однако, если я наберу cv2.waitKey(290), elapsed_time станет 350 мс.
  2. Почему cv2.waitKey(350) приводит к тому, что elapsed_time больше 350 мс?
  3. Любое предложение, как моя программа может быть более точной в отношении времени?

Большое спасибо

Aybars

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