es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mostrar rectángulos de QML en el flujo de video en función del reconocimiento de objetos.

Tengo un flujo de video como se describe en Visión general de video de Qt, utilizando las mecánicas de MyVideoProducer. Las imágenes de origen son analizadas y tengo una lista de componentes conectados (x, y, ancho, alto) y quiero superponer rectángulos en el video.

¿Puedo hacer esto enviando una lista de coordenadas de rectángulo a QML y hacer que coloque los rectángulos, o necesito crear mis propias imágenes superpuestas?

He mirado el sistema de partículas QtQuick pero no parece encajar. Otras preguntas tienen el diseño del rectángulo gestionado por Qt/Qml, pero necesito que el rectángulo se coloque según las coordenadas que la cadena de procesamiento de visión ha determinado en C++ y enviado a la interfaz de usuario de QML. Serán anticuados/relacionados con los cuadros de video.

Hay un ejemplo, pero la superposición no está relacionada con el video. Creo que necesito una superposición que esté sincronizada con onNewVideoContentReceived(). QML no podrá determinar cómo mantener cualquier lista de rectángulos sincronizada con el video fácilmente.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en qt, visión por computadora, qml y qt5, puedo sugerir que es posible sobrescribir rectángulos en el flujo de video enviando una lista de coordenadas de rectángulos a QML y hacer que coloque los rectángulos. Sin embargo, deberá crear sus propias imágenes de capa superior para este propósito.

    Puede utilizar la mecánica de “MyVideoProducer” descrita en la Descripción general de video de Qt para analizar las imágenes de origen y generar una lista de las coordenadas de los componentes conectados. Para sobrescribir rectángulos en el flujo de video, puede enviar esta lista de coordenadas al front-end de QML y hacer que coloque los rectángulos en consecuencia.

    Sin embargo, dado que las coordenadas de los rectángulos están relacionadas con los fotogramas del video y se volverán obsoletas, deberá asegurarse de que la superposición esté sincronizada con el evento “onNewVideoContentReceived()”. QML no podrá determinar cómo mantener la lista de rectángulos sincronizada con el video fácilmente.

    Si bien el sistema de partículas de QtQuick puede no ser adecuado para este propósito, puede referirse a este ejemplo que muestra cómo sobrescribir una imagen en el flujo de video utilizando QML. Deberá modificar este ejemplo para manejar la lista de coordenadas generada por su canalización de visión y actualizar la superposición en consecuencia.

    En resumen, es posible sobrescribir rectángulos en el flujo de video utilizando QML. Sin embargo, deberá crear sus propias imágenes de capa superior y asegurarse de que la superposición esté sincronizada con los fotogramas del video. Puede consultar el ejemplo mencionado anteriormente para comenzar.

Comments are closed.