Python:OpenCV:创建图像轮播

Python: OpenCV: Creating an image carousel

我有5张图片,im1,im2,im3,im4,im5,都是JPG格式。
我想使用这些图片创建图片轮播。
我从以下代码开始:

from time import sleep
import cv2
imagelist = ["im1.jpg", "im2.jpg", "im3.jpg", "im4.jpg", "im5.jpg"]
for image in imagelist:
   img = cv2.imread(image, 1)
   cv2.namedWindow("SCREEN")
   cv2.imshow("SCREEN", img)
   sleep(0.2)
   cv2.destroyAllWindows()

Problem: It actually creates a cv2 window every 0.2 seconds and displays the image. But I want it to display the image in the same opened window without closing and creating multiple windows.

请帮我完成这个任务。
谢谢

你不需要睡眠,你需要使用 cv2.waitKey()。我测试了它,这应该可以正常工作。

waitKey 函数接受一个 int 来表示以 ms 为单位的延迟,但它还将按键记录为一个序数,然后您可以使用它来设置按键命令,例如,按 q 时退出。如果将其留空,则按任何键都会前进一步。

我只是使用 glob 抓取了文件夹中的所有 .jpg,但像您一样用列表中的图像手动替换它会很好。

import cv2
import glob

imagelist = glob.glob("*.jpg")
for image in imagelist:
   img = cv2.imread(image)
   cv2.imshow("SCREEN", img)
   cv2.waitKey(20)