opencv 不带waitKey的镜像

bd1hkmkf  于 2023-10-24  发布在  其他
关注(0)|答案(4)|浏览(120)

下面的Python代码显示了一个全屏图像:

blank_image = cv2.imread('blank.jpg')
cv2.namedWindow("bw", cv2.WND_PROP_FULLSCREEN)          
cv2.setWindowProperty("bw", cv2.WND_PROP_FULLSCREEN, cv2.cv.CV_WINDOW_FULLSCREEN)
cv2.imshow("bw", blank_image)
cv2.waitKey(0)

问题是代码将在没有键盘的Linux机器上运行。调用waitKey意味着UI处理将在键事件发生之前完成,因此存在矛盾。
除了waitKey还有什么办法吗?

kdfy810k

kdfy810k1#

澄清一下:从文档中可以看出,
Python:cv2.waitKey([delay])→ retval
函数waitKey无限地等待一个按键事件(当delay <= 0时),或者当delay为正时等待毫秒。
如果你使用delay = 0,那么你的程序会无限地等待一个键事件,阻塞执行。正如@三木所说,你可以使用delay = 1,这样waitKey就不会阻塞。

k7fdbhmy

k7fdbhmy2#

您可以使用matplotlib库在python中显示图像。

In [9]: blank_image = cv2.imread('blank.jpg')
In [10]: import matplotlib.pyplot as plt
In [11]: plt.ion()
In [12]: plt.imshow(blank_image)
Out[12]: <matplotlib.image.AxesImage at 0x7fb3cf31bf10>
pw136qt2

pw136qt23#

你可以在一个线程上使用from _thread import*导入Thread模块,然后使用start_new_thread方法

avkwfej4

avkwfej44#

下面的代码片段将在不等待用户输入的情况下工作:

blank_image = cv2.imread('blank.jpg')
cv2.namedWindow("bw", cv2.WND_PROP_FULLSCREEN)          
cv2.setWindowProperty("bw", cv2.WND_PROP_FULLSCREEN, cv2.cv.CV_WINDOW_FULLSCREEN)
cv2.imshow("bw", blank_image)
cv2.waitKey(1) & 0xFF == ord('0')

关注this question以获取更多信息。

相关问题