Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自动检测树莓Pi摄像机_Python_Raspberry Pi - Fatal编程技术网

Python 自动检测树莓Pi摄像机

Python 自动检测树莓Pi摄像机,python,raspberry-pi,Python,Raspberry Pi,我有一个问题,是否有办法检测Raspi摄像头HW模块?我正在用Python编写一个项目,我需要验证摄像头硬件模块是否连接到RPi,因为我需要将同一个Python项目复制到多个RPi,但其中一些RPi不会连接摄像头。我使用的是Picamera SW模块,但我在想,如果相机存在于/dev树中的某个位置,则导入此类模块,现在是否有人知道这是可能的,或者是实现这一点的方法 提前感谢好的,我在谷歌搜索了一些后发现的解决方案是命令vcgencmd,它用于检测摄像机是否连接,因此通过发出Python来执行子进

我有一个问题,是否有办法检测Raspi摄像头HW模块?我正在用Python编写一个项目,我需要验证摄像头硬件模块是否连接到RPi,因为我需要将同一个Python项目复制到多个RPi,但其中一些RPi不会连接摄像头。我使用的是Picamera SW模块,但我在想,如果相机存在于/dev树中的某个位置,则导入此类模块,现在是否有人知道这是可能的,或者是实现这一点的方法


提前感谢

好的,我在谷歌搜索了一些后发现的解决方案是命令vcgencmd,它用于检测摄像机是否连接,因此通过发出Python来执行子进程,我已经获得了所需的结果

O.S.命令“vcgencmd get_camera”给出输出:

supported=0 detected=0
因此,通过使用子流程python调用:

import subprocess
c = subprocess.check_output(["vcgencmd","get_camera"])
int(camdet.strip()[-1]) #-- Removes the final CR character and gets only the "0" or "1" from detected status

if (c):
    print "Camera detected"
else:
    print "not detected"

希望这对其他人有用,欢迎任何更简单的建议解决方案

我用它来检查picamera是否可用,基于上一篇文章。 如果使用值1获得支持和检测,则可以使用picamera

#!/usr/bin/python
import subprocess
#--next line returns something like supported=1 detected=1
#--if get supported and deteted valued at 1 you have a picamera available    
commandResult = subprocess.check_output("vcgencmd get_camera", shell=True)

如果相机未连接,初始化picamera类时是否会引发错误?或者它什么都不做。。。如果你试图拍摄一张没有摄像头的图像。。。图像大小是0还是什么?嗨,Joran,实际上我最初的想法是,正如您所描述的,在启动python项目之前,使用O.S.命令“raspistill”拍摄快照。有一件事是可以肯定的,那就是.jpeg不会出现,忘了它的大小吧,问题是当我尝试使用Python时,它会在尝试拍摄快照时出现异常,我真正需要的只是检测它是否存在的条件,现在我已经实现了一个有效的解决方案,我会将其发布在主线程中,非常感谢你的回答。