使用openCV显示动画的Python循环仅适用于按键中断

enyaitl3  于 2023-10-24  发布在  Python
关注(0)|答案(2)|浏览(104)

当你等待cv2.waitKey(0)的按键时,这个python脚本可以工作,但是当我想用time.sleep(0.1)而不是cv2.waitKey(0)制作一个平滑的动画时,它就不行了。然后它会显示一个光标符号,表明系统卡住了。为什么会这样?

import cv2
import random
import numpy as np

originalImg = cv2.imread('assets/fluf.jpg', cv2.IMREAD_UNCHANGED)
img = np.copy(originalImg)

index = 0
while True:
    index += 1
    smallPartImg = originalImg[500:700,index:index+200]
    img[0:200,0:200] = smallPartImg
    cv2.imshow('image',img)
    cv2.waitKey(0)
zi8p0yeb

zi8p0yeb1#

你应该把waitKey()的数值改变为不等于0的值。无论这个数值多高,转换速度都会降低。

px9o7tmv

px9o7tmv2#

只是将评论复制到一个答案中(谢谢**@Micka**!),以便稍后为任何人完成此操作
使用waitKey(1)。OpenCV需要waitKey命令来执行窗口渲染
问题是
waitKey(0)永远等待直到按键被按下。waitKey(1)等待1 ms或直到按键被按下。两者都执行所有先前imshow调用的屏幕渲染。time.sleep不执行opencv窗口渲染。

相关问题