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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章