Pantalla QML rectángulos en la secuencia de vídeo basado en el reconocimiento de objetos

0

Pregunta

Tengo una secuencia de vídeo tal como se describe en Qt Vídeo de Introducción, el uso de la MyVideoProducer la mecánica. El origen de las imágenes son analizadas y tengo una lista de los componentes conectados (x,y,ancho,alto) y quiero superposición de los rectángulos en el vídeo.

Se puede hacer esto mediante el envío de una lista de rectángulo de coordenadas a QML y tienen lugar los rectángulos o qué necesito para crear mi propia superposición de imágenes?

Me miré en el QtQuick sistema de partículas, pero no parece encajar. Otras preguntas tienen el diseño del rectángulo administrado por Qt/Qml, pero necesito el rectángulo para ser colocados de acuerdo a las coordenadas que la visión de canalización ha determinado en C++ y se envía a la QML front-end. Ellos serán obsoletos/relacionados con el fotogramas de vídeo.

Hay un ejemplo, pero la superposición no está relacionado con el video. Creo que necesito una superposición que se sincroniza con la onNewVideoContentReceived(). QML no será capaz de determinar cómo mantener cualquier lista de rectángulo en la sincronización con el vídeo fácilmente.

computer-vision qml qt qt5
2021-11-22 18:51:32
1

Mejor respuesta

1

Me acaba de modificar el búfer original de la creación, debayered de una cámara, para dibujar los rectángulos a mí mismo en el formato RGBA. Evita el problema de sincronización de la imagen de vídeo con la localización del objeto de datos. Yo no uso la alfa, pero sólo la sustitución de los píxeles. Para mi el contenido, la cantidad de casillas frente al área de video no era muy grande. Con alfa rectángulos y un montón de objetos, puede ser más eficaz para involucrar de una GPU. De hecho, usted podría utilizar de tamaño fijo, en plazas y no la CCL región acotada, y que esto podría ser mucho más rápido con una GPU.

Un QML solución sería la más elegante, pero esta solución funciona.


Las opciones alternativas son QVideoFrame::setMetaDataesto puede atar el CCL QRect lista a la estructura, por lo que la asociación es claro y atado a la estructura. El método onNewVideoContentReceived() de la MyVideoProducer podría hacer que los rectángulos de C++.

Otra opción es QAbstractVideoFilter, que modificará el búfer original para añadir información adicional a las imágenes presentadas. Esto es fácil de activar/desactivar a través de la QML front end.

Todas las soluciones se basan en C++ por lo que no es fácil cambiar colorear, etc en QML. Por ejemplo, si el objeto tiene un reconocido propiedad, tales como 'masculino', 'femenino', 'gato', 'vehículo', etc el QML podría actualizar el resaltado de manera adecuada y mantener una contabilidad de los tipos de objeto.

2021-11-26 16:16:56

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................