¿Cómo detecto el tipo de cámara instalada?

12

Necesito saber cómo detectar de forma remota si un módulo de cámara de 8mp o 5mp está conectado al rpi para la implementación en un proyecto integrado.

¿Alguna ayuda?

Boris Spektor
fuente
¿Por qué no buscar las especificaciones de la cámara en línea?
Darth Vader
El dispositivo en sí será inaccesible, por lo que necesito identificar el modelo de la cámara a través de ssh.
Boris Spektor
2
¿Tomar una foto y mirar la resolución / tamaño? Debería ser significativamente diferente.
Ghanima
¿Hay un comando cli para ver las dimensiones de una imagen? Si es así, podría canalizar la salida de raspistill en ese comando de información.
Boris Spektor

Respuestas:

8

Ninguna de las anteriores.

Aproveche el controlador v4l ( modprobe bcm2835-v4l2), y use el v4l2-ctlcomando de la CLI o, si quiere ser elegante, use las bibliotecas v4l2 de python o C:

# v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YU12'
        Name        : Planar YUV 4:2:0

(mucho más salida)

# v4l2-ctl --list-framesizes=YU12
ioctl: VIDIOC_ENUM_FRAMESIZES
        Size: Stepwise 16x16 - 2592x1944 with step 2/2
JayEye
fuente
La pregunta real es, aparentemente, ¿cómo puedo obtener V412-ctl? Conmigo simplemente dice "no existe tal archivo o directorio". "No se puede localizar el paquete v412-ct" Sin esta información, la respuesta está incompleta.
Albert van der Horst
3

Nada de lo anterior funcionó para mí. Con Raspbian Stretch (versión de junio de 2018, Kernel 4.14), Python 3.5 y picamera 1.13 utilicé:

import picamera

with picamera.PiCamera() as cam:
    print(cam.revision)
EdMc2
fuente
2

Si está satisfecho con la codificación C, eche un vistazo a las líneas relevantes en raspistill, que utiliza la nueva MMAL_PARAMETER_CAMERA_INFOpara buscar el tipo de cámara conectada.

Si no está tan contento con C, tendrá que esperar una semana más o menos mientras termino la picamera 1.11, que tendrá un nuevo PiCamera.modelparámetro que puede consultar para obtener la misma información (esto devolverá una cadena que contiene el nombre del sensor como devuelto por MMAL_PARAMETER_CAMERA_INFO).

Actualización Como muestra claramente la respuesta de EdMc2, terminé llamando a esto en PiCamera.revisionlugar de modelo.

Dave Jones
fuente
¡Gracias por la actualización! Esta publicación aparece primero en una búsqueda de 'picamera get model', así que estoy agradecido por las migas de pan
Mike McCabe
0

La respuesta de EdMc2 funcionó para mí, pero cam.revision solo muestra el nombre del sensor de la cámara. Así que encontré una resolución máxima como esta:

import picamera

with picamera.PiCamera() as cam:
    print(cam.MAX_RESOLUTION)

Puede guardar el archivo (por ejemplo, picamera.py) y ejecutarlo así:

python3 picamera.py

Mi resultado es 2592x1944que es una cámara de 5MP.

Piensa logicamente
fuente