Python cv2.imshow()窗口不显示图像的问题

问题描述:

在python中使用了cv2.imshow()函数,运行时图片一闪而过,即使添加了time.sleep()函数来阻止窗口关闭,imshow显示的窗口也是灰白的,没有图片信息。

原因分析:

根据stack overflow上的一个解答,cv2.imshow()后面需要跟随者cv2.waitKey(period)函数,这个函数可以使图像持续显示给定的一段时间period(ms),否则,图片将无法显示。例如:waitKey(0)将持续显示图片直到有按键被按下(这一设置很适合用于显示图片);waitKey(25)将使图片显示25ms,之后图片窗口将会自动关闭。如果你将它置于一个读取图片的loop中,那么它将逐帧显示图片

解决方案:

1、显示一张图片,直至有任意按键被按下则关闭窗口

import cv2

img = cv2.imread('a.png')
cv2.imshow('a frame', img)	# a frame 是显示窗口的的标题名称
cv2.waitKey(0)
cv2.destroyAllWindows()

2、连续显示一组照片,当按下q时,退出显示。

import cv2

i = 1	# the tag of the first image
while 1:
	img = cv2.imread('img_' + str(i) + '.png')
	if img is None:
		break
	
	cv2.imshow('frames', img)
	key = cv2.waitKey(200)	# delay 200ms
	
	if key == ord('q'):
		break
	i = i + 1
cv2.destroyAllWindows()

你可能感兴趣的:(Python学习,opencv,opencv,python,计算机视觉)