Мне нравилось отображать изображение в течение определенной продолжительности, например, 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
в моем коде отражает, как долго я на самом деле отображаю это конкретное изображение.
Мой вопрос:
- Насколько точен или точен метод OpenCV waitKey ()? Я знаю,
cv2.waitKey()
принимает аргумент в миллисекундах. Однако, если я наберу cv2.waitKey(290)
, elapsed_time
станет 350 мс. - Почему
cv2.waitKey(350)
приводит к тому, что elapsed_time
больше 350 мс? - Любое предложение, как моя программа может быть более точной в отношении времени?
Большое спасибо
Aybars