Pregunta

Estoy escribiendo un programa, que va a hacer algunas transformaciones con la imagen de una cámara web en tiempo real. Como casi todas las demás webcams, mi noname da datos en formato YUY2 (como está escrito en bmiHeader.biCompression). Probé conversión recta en el lado de la CPU de acuerdo con http://www.fourcc.org/yuv.php # YUY2 , pero es muy lento y el mal:.)

Cuando conecto pin salida de la fuente de renderizador, imagen y velocidad de fotogramas están bien.

Así que estoy buscando un filtro DirectShow, o, tal vez, algunos codec, que va a hacer la conversión rápida de YUY2 a RGB24 en la tarjeta de vídeo y daré mi resultado sin que lo hacen en la pantalla.

Estoy usando:

  • 32 bits de Windows XP SP3.
  • VC ++ 2005
  • Recientemente descargado SDK de Windows.
  • DirectX August'09.
¿Fue útil?

Solución

No tengo el código disponible en este momento. Pero echar un vistazo en el uso de la GDI para hacer la conversión es muy rápido.

Básicamente capturar el fotograma de origen, crear un DIB de memoria en el formato correcto (RGB24) y blit al mapa de bits. la conversión se produce durante el blitting y en mi experiencia es muy rápido.

Lo utilizo para capturar fotogramas de una cámara web y luego puedo soltar los marcos en el disco duro en la velocidad de cuadros requerida, ya sea como JPEG o mapas de bits.

CC

Otros consejos

Puede utilizar VirtualDub Kasumi biblioteca http://virtualdub.sourceforge.net/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top