使用 V4L2 的奇怪结果,python,在 raspberry pi 3
Weird outcomes using V4L2, python, on raspberry pi 3
奇怪的编码结果,没有多大意义。我正在尝试使用 V4L2 驱动程序从 raspberry pi 相机捕获,因为我需要使用 cv2 进行图像处理。我正在使用 python 编写代码。
奇怪之处在于使用 cv2 捕获图像。当我输入以下命令时
import cv2
from matplotlib import pyplot
camera = cv2.VideoCapture(0)
grab,frame = camera.read()
pyplot.imshow(frame)
我可以抓取一个帧并使用 matplotlib 显示它。当我抓取第二帧时
grab,frame2 = camera.read()
pyplot.imshow(frame2)
代码将抓取第二帧并完美显示。
然而,当我尝试使用像 frame
或 frame2
这样的现有变量时,相机不会抓取新帧,而只会打印前一帧。
我试图通过键入
来清除变量
frame = []
grab,frame = camera.read()
pyplot.imshow(frame)
但这并没有解决问题,仍在打印之前的帧。
我觉得你是"suffering from buffering"!
当OpenCV读取一帧的时候,往往会聚集几帧,我觉得是5帧左右,或者可能有什么算法判断可用内存之类的.
无论如何,答案是多读取几帧以清除缓冲区,然后它会获取一些新帧。
奇怪的编码结果,没有多大意义。我正在尝试使用 V4L2 驱动程序从 raspberry pi 相机捕获,因为我需要使用 cv2 进行图像处理。我正在使用 python 编写代码。
奇怪之处在于使用 cv2 捕获图像。当我输入以下命令时
import cv2
from matplotlib import pyplot
camera = cv2.VideoCapture(0)
grab,frame = camera.read()
pyplot.imshow(frame)
我可以抓取一个帧并使用 matplotlib 显示它。当我抓取第二帧时
grab,frame2 = camera.read()
pyplot.imshow(frame2)
代码将抓取第二帧并完美显示。
然而,当我尝试使用像 frame
或 frame2
这样的现有变量时,相机不会抓取新帧,而只会打印前一帧。
我试图通过键入
来清除变量frame = []
grab,frame = camera.read()
pyplot.imshow(frame)
但这并没有解决问题,仍在打印之前的帧。
我觉得你是"suffering from buffering"!
当OpenCV读取一帧的时候,往往会聚集几帧,我觉得是5帧左右,或者可能有什么算法判断可用内存之类的.
无论如何,答案是多读取几帧以清除缓冲区,然后它会获取一些新帧。