我一直在编写代码来显示电影中的帧。以下是代码的基本结构:
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窗口,则“输入”窗口将出现,但它只是一个空白/白色窗口。 我在这里错过了什么?
cv2.imshow
后尝试使用cv2.waitKey(0)
。 - M4rtini