【发布时间】:2017-12-15 00:05:40
【问题描述】:
我有一个带摄像头的 Rasberry Pi,我正在使用 RPi Cam Web 界面将视频流式传输到我的浏览器。我运行一个脚本来读取图像并如下处理它们。运行代码会打开一个窗口,其中包含当前处理过的图像。当我关闭窗口时,我会得到一个更新的处理图像。
但是,我想做的是输出已处理图像的连续视频。我应该采取什么方法来做到这一点?
while True:
image = io.imread('http://[ip-address]/cam_pic.php')
image_gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
faces = detect(image_gray)
image_with_detected_faces = faces_draw(image, faces)
plt.imshow(image_with_detected_faces)
plt.show()
【问题讨论】:
-
这个 github repo 解释了如何使用 tensorflow 对连续视频进行分类可能会有所帮助。
-
这里有很多缺失的信息,这使得这个问题很难回答。您可以使用
plt.savefig()而不是plt.show()保存图像,然后我建议您使用ffmpeg(或类似的)将图像转换为视频。为了产生合理的结果,您的处理时间必须相当短,才能获得不错的帧速率。此外,您可能希望在设定的时间而不是尽可能快地捕获图像,以获得更好的“流程”。最后,这当然不会产生实时视频。 -
@JohanL 这很有帮助,谢谢。我应该在我的问题中添加哪些信息?
-
例如,如果我提出的方法,使用
ffmpeg并且不获取实时流是可以的。另外,您期望的帧速率是多少?序列要存储多长时间?您应该在 RPi 上进行所有处理,还是可以将其卸载到更强大的服务器上?另外,您想对视频进行编码以减小其大小等吗?
标签: python matplotlib raspberry-pi computer-vision