我使用Opencv打开相机,然后我想显示图像bu matplotlib。 但是,帧会冻结。 我可以实时使用matplotlib吗? 谢谢!
cap = cv2.VideoCapture(0)
while (True):
ret, frame = cap.read()
if cv2.waitKey(1) & 0xFF == ord('q'):
break
plt.subplot(1,2,1), plt.imshow(frame, interpolation='nearest')
plt.show()
答案 0 :(得分:2)
您可以使用plt.ion()
启用交互式绘图。
import matplotlib.pyplot as plt
import cv2
cap = cv2.VideoCapture(0)
plt.ion()
while (True):
ret, frame = cap.read()
if cv2.waitKey(1) & 0xFF == ord('q'):
break
plt.subplot(1,2,1), plt.imshow(frame, interpolation='nearest')
plt.pause(0.001)
plt.show()
在此解决方案中,您可以重新绘制所有内容,甚至可以为要显示的每个帧创建一个新的子图。这是非常低效的,因此很慢。看看这个答案Speed up live plotting of a footage (cv2)。