Capturar imagem da Webcam

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Re: Capturar imagem da Webcam

Mensagem por Mario Mesquita »

Boa tarde a todos.

Não é dia do trabalho? Vamos trabalhar, então!

Entrei no post pois tambem preciso usar captura de imagem tanto de webcam como de scaner nos programas que estou fazendo.

Baixei o exemplo do Toledo, mas algo aconteceu. O exemplo congelava e só saia com CTRL+ALT+DEL. Pensei ser algo da rotina. Então copiei a FUNCTION de captura para meu programa e deu a mesma coisa. Fuçando, descobri que era a função GetFormHandle('Form'). Segui o que tinha no manual da lib e botei 0 (zero) no lugar. Não travou, mas não grava a imagem.

Curioso é que fiz um botão pra chamar a rotina 'TWAIN_AcquireToFilename'. Testando, descobri que após a captura, é como se não retornasse a função chamada pelo botão. Aí quando gravo, ele tenta concluir e dá um erro de form, pois o mesmo já foi liberado (released).

Caramba, pra uma coisa tão simples estou o dia todo brigando, desde 7h da manhã. Achei que ia rodar fácil, mas...

Detalhe: Estou usando uma camera Logitech. E o aplicativo da camera entra junto com a rotina da lib. Pode ser isso?
Algum tipo de confilto?

Quem tiver uma dica, já agredeço antecipado.

Abraços,
Mario.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Re: Capturar imagem da Webcam

Mensagem por Mario Mesquita »

Boa noite. pessoal.

Reforçando a msg anterior, entendi que parece que ocorre uma falha na rotina de captura. O botão "Obter Imagem" não habilita, então não grava a imagem. A rotina retorna -1 (The Acquire failed). Fui na configuração da camera para que o seu programa não confiltasse com a rotina de captura, mas até agora não consegui ajeitar...

Se alguem já se deparou com coisa semelhante, pode comentar.

Obrigado,
Mario.
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Capturar imagem da Webcam

Mensagem por marcos.gurupi »

Caro, resurgindo o assunto das cinzas. O exemplo q peguei aqui mesmo do amigo Toledo agora parou de funcionar, na verdade ele apresenta a imagem do scanner quando eh invocado. No meu notebook soh tem a webcam e quando invoco a funcao ele nao apresenta nada. Coloquei a funcao chamando a origem e fica em branco. Segue abaixo o meu codigo

Código: Selecionar todos

Static Function ObterImagemAss(CodCli)


Local Form_Main
Local oFontBtn
Local oFont := Nil
Local nColor
local hdll

If File(vAssinatura)
   If MsgYesNo("Imagem da Rubrica ja existe. Substituir Imagem ?")
      IF FErase(vAssinatura)<0
         MsgStop("Nao foi possivel deletar a Imagem anterior")
         Return .F.
      Endif
   Else
      Return .F.
   Endif
Endif
hdll:=loadlibrary("EZTW32.DLL")
dllcall(hdll,DC_CALL_STD,"TWAIN_SelectImageSource",oDlg:Handle,vAssinatura) //Adicionei aqui para ver se aparecia a webcam
dllcall(hdll,DC_CALL_STD,"TWAIN_AcquireToFilename",oDlg:Handle,vAssinatura)
freelibrary(hdll)
vAssinatura:=""
oAssinatura:SetText(vAssinatura)
oAssinatura:Refresh()
vAssinatura:=xendcomp+"Imagens\AS"+strzero(codcli,6)+".bmp"
If File(vAssinatura)
   oAssinatura:Hide()
   @ 15,25 IMAGE oAssinatura SHOW vAssinatura OF oDlg SIZE 570,332
   oAssinatura:Refresh()
   oAssinatura:Show()
Else
   oAssinatura:Hide()
Endif
Return .T.
Marcos Roberto
NetService Software
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Capturar imagem da Webcam

Mensagem por rochinha »

Amiguinho,

Reinstale o driver TWAIN.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Capturar imagem da Webcam

Mensagem por Toledo »

Código: Selecionar todos

dllcall(hdll,DC_CALL_STD,"TWAIN_SelectImageSource",oDlg:Handle,vAssinatura)
Marcos, se você prestar atenção na minha mensagem postada no outro tópico onde você iniciou este assunto, vai notar que na função "TWAIN_SelectImageSource" você tem que passar apenas o Handle da janela, então este parâmetro "vAssinatura" não precisa.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Capturar imagem da Webcam

Mensagem por marcos.gurupi »

Caro Toledo obr pela resposta. Isso jah foi feito, inclusive a janela para selecionar o dispositivo aparece, mas aparece vazio (no caso do meu not q soh tem a webcan). Verificando minha webcan (windows 7) ela aparece normalmente em dispositivos e impressoras. No caso do meu cliente a janela aparece com apenas o scanner como opcao. O q parece eh q estah disponivel apenas o q for impressoras e faz!
Marcos Roberto
NetService Software
Responder