2016-01-23 70 views
1

我一直在使用代碼來顯示電影中的幀。代碼的梗概如下:。如何在Python中使用cv2顯示圖像

import cv2 
import matplotlib.pyplot as plt 

# Read single frame avi 
cap = cv2.VideoCapture('singleFrame.avi') 
rval, frame = cap.read() 

# Attempt to display using cv2 (doesn't work) 
cv2.namedWindow("Input") 
cv2.imshow("Input", frame) 

#Display image using matplotlib (Works) 
b,g,r = cv2.split(frame) 
frame_rgb = cv2.merge((r,g,b)) 
plt.imshow(frame_rgb) 
plt.title('Matplotlib') #Give this plot a title, 
         #so I know it's from matplotlib and not cv2 
plt.show() 

因爲我可以使用matplotlib顯示圖像,我知道我成功地閱讀它

我不明白爲什麼我的創作一個窗口並嘗試使用cv2顯示圖像不起作用。沒有出現cv2窗口。奇怪的是,如果我創建第二個cv2窗口,會出現'輸入'窗口,但它只是一個空白/白色窗口。

我在這裏錯過了什麼?

+2

您是否閱讀過文檔?在'cv2.imshow..'後面嘗試'cv2.waitKey(0)' – M4rtini

回答

4

據我所知,你做得差不多了。有一件事丟失:

cv2.imshow('image',img) 
cv2.waitKey(0) 

所以可能你的窗口出現,但非常非常快地關閉。