我目前正在使用带有Raspberry Pi 3的USB网络摄像头。目前,作为Python中许多其他代码的一部分,它使用相机拍摄照片并将其保存到特定目录。我想知道是否有任何方法可以在屏幕上显示图像的预览,类似于picamera的工作方式:
camera.start_preview()
time.sleep(5)
camera.capture('/home/pi/Downloads/image.jpg')
camera.stop_preview()
使用fswebcam是否有相同的效果?拍摄图像的代码部分是:
from subprocess import call
call(["fswebcam", "--no-banner", "image.jpg"])
理想情况下,我希望它能在屏幕上预览图像一段时间,然后再将其保存到目录中。这可能吗?
答案 0 :(得分:0)
我为商业应用程序制作了这种功能。 (这里没有源代码,对不起) 混合fswebcam用于捕获和其他python代码进行预览似乎是一个坏主意,因为相机几乎不可用于它们。 (您可以尝试使用“mplayer tv://”作为预览,并从另一个终端启动fswebcam来验证这一点)
对于python approcah:最困难的部分是显示预览,你应该围绕这个功能构建你的应用程序。将帧保存为图像将很容易。 我在使用Pygame方面取得了一些成功,可以使用v4l2相机,管理显示和用户事件。
在实践中,请查看https://gist.github.com/snim2/255151,您需要的主要pygame功能就在那里。
注意:不要指望预览的刷新率是完美的。它只会是体面的。 不确定是否是造成这种情况的相机,v4l2,pygame或python ......