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)
我有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)