【问题标题】:Python: OpenCV: Creating an image carouselPython:OpenCV:创建图像轮播
【发布时间】:2021-10-12 06:33:33
【问题描述】:

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

问题:它实际上每 0.2 秒创建一个 cv2 窗口,并且 显示图像。但我希望它以相同的方式显示图像 打开窗口而不关闭并创建多个窗口。

请帮助我完成这项任务。
谢谢

【问题讨论】:

  • 我怀疑你需要 cv2.waitKey(..) 代替 sleep()。

标签: python opencv-python


【解决方案1】:

你不需要睡眠,你需要使用 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)

【讨论】:

  • 非常感谢您的回答。谢谢你。你让我的工作轻松完成
猜你喜欢
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2017-11-27
  • 1970-01-01
  • 2014-07-23
相关资源
最近更新 更多