奇怪的编码结果没有什么意义。我试图从一个使用V4L2驱动程序的覆盆子pi相机捕捉,因为我需要使用cv2进行图像处理。我使用python编写代码。在
奇怪之处在于使用cv2拍摄图像。当我输入以下命令时
import cv2
from matplotlib import pyplot
camera = cv2.VideoCapture(0)
grab,frame = camera.read()
pyplot.imshow(frame)
我可以抓取一个帧并使用matplotlib显示它。当我抓到第二帧
^{pr2}$代码将抓取第二帧并显示得非常好。在
但是,当我尝试使用现有的变量,如frame
或frame2
时,相机不会抓取新的帧,而只打印之前的帧。在
我试图通过键入来清除变量
frame = []
grab,frame = camera.read()
pyplot.imshow(frame)
但这并没有解决问题,仍然打印先前的帧。在
我想你是在忍受缓冲的折磨!在
当OpenCV读取一个帧时,它往往会聚集一些,我想大概是5帧左右,或者可能有某种算法确定可用内存或类似的东西。在
不管怎样,答案是多读几个帧来清除缓冲区,然后它将获得一些新的帧。在
相关问题 更多 >
编程相关推荐