Extraños artefactos de imagen de la cámara PS3 Eye

Estoy usando la cámara PS3 Eye (modelo 5SLEH-00448) para tomar fotos con OpenCV (C++) en Rapsberry Pi. Se ejecuta a través del controlador v4l2 que solo admite el modo de captura sin comprimir YUYV. Guardo las imágenes como PNG. Necesito imagen sin comprimir con la mejor calidad posible.

Imagen de muestra en 320x240 (remuestreada por la cámara o por el controlador): se pueden ver artefactos de imagen extraños en los bordes diagonales de las fotos. Cuando se acerca, hay un artefacto en zig-zag en el borde superior de la pantalla LCD que parece una "escalera". :

Extraños artefactos de imagen de la cámara PS3 Eye

El 640x480 nativo de la cámara se ve bastante decente (no puedo ver muchos artefactos allí):

ingrese la descripción de la imagen aquí

Aquí está el modo de captura:

 $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
    Index       : 0
    Type        : Video Capture
    Pixel Format: 'YUYV'
    Name        : YUYV

¿Alguien sabe lo que está pasando? Parece que la imagen nativa se ve bastante bien y los artefactos probablemente provienen del algoritmo de reducción de resolución en el controlador.

Respuestas (1)

En el formato YUYV, el canal de luminancia (Y) que controla el brillo de los píxeles tiene una resolución más alta que los canales de crominancia (U y V), que controlan el matiz. Cada píxel tiene su propia información de brillo, pero los dos píxeles siguientes comparten el valor del matiz.

Su imagen pequeña parece como si el algoritmo de reducción de resolución hubiera operado independientemente en los canales Y y UV, ignorando que los diferentes tonos tienen un brillo percibido diferente. Esto causará tales artefactos en los bordes verticales o diagonales, si no solo el brillo, sino también el cambio de tono de un lado del borde al otro. Como puede ver, el borde entre la estantería y la pared sobre el monitor no se ve tan afectado, ya que ambos lados del borde comparten un tono similar.

No estoy familiarizado con el software que está utilizando y no puedo darle una solución lista para usar, pero si el algoritmo de reducción de resolución YUYV está tan roto, tal vez pueda convertir la imagen de entrada a RGB antes de reducir la resolución y luego continuar trabajando con los datos RGB o volver a convertirlos a YUYV si por alguna razón necesita la imagen reducida en formato YUYV?