Pergunta

Eu estou escrevendo um programa, que irá fazer algumas transformações com a imagem de uma webcam em tempo real. Como quase todas as outras webcams, meu noname dá dados em formato YUY2 (como está escrito no bmiHeader.biCompression). Tentei conversão em frente CPU lado de acordo com a http://www.fourcc.org/yuv.php # YUY2 , mas é muito lento e errado:).

Quando eu conecto pino de saída fonte de processador, imagem e taxa de quadros estão bem.

Então, eu estou procurando um filtro DirectShow, ou, talvez, algum codec, que irá fazer a conversão rápida de YUY2 para RGB24 na placa de vídeo e vai dar-me resultar sem torná-lo na tela.

Eu estou usando:

  • 32 bits do Windows XP SP3.
  • VC ++ 2005
  • Recently downloaded Windows SDK.
  • DirectX August'09.
Foi útil?

Solução

Eu não tenho o código disponível no momento. mas dê uma olhada usando o GDI para fazer a conversão é muito rápido.

Basicamente captar o fotograma de origem, crie um DIB de memória no formato correto (RGB24) e blit para o bitmap. a conversão ocorre durante a blitting e na minha experiência é muito rápido.

Eu uso isso para quadros de apoio de uma webcam e então eu posso soltar os quadros para o disco rígido na taxa de quadros necessários tanto como JPEGs ou bitmaps.

DC

Outras dicas

Você pode usar o VirtualDub Kasumi biblioteca http://virtualdub.sourceforge.net/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top