Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: RJ-45 en 17 Julio 2005, 19:58 pm



Título: Video en tiempo real
Publicado por: RJ-45 en 17 Julio 2005, 19:58 pm
Wenas

Esto que quiero hacer ya lo vi hacerlo hace unos años, pero no lo hice yo, asi que no se por donde empezar

Lo que quiero hacer es "simplemente" desde un formulario de VB ver en tiempo real las imagenes de una webcam (en este casi, una AIPTEK).

Se que mi profesor de VB se bajo de la web oficiald su webcam un control que hacia eso, pero para esta no lo encuentro

¿Como lo hago?

Nos vemos y gracias

PD: esto es para empezar, luego quiero poder capturar, control de brillo... pero eso cuando consiga verlo al menos :P


Título: Re: Video en tiempo real
Publicado por: xavierote en 17 Julio 2005, 20:14 pm
Creo que lo que buscas es un control ActiveX para controlar la cámara. Lo puedes encontrar en:
http://www.shrinkwrapvb.com/ezvidcap.htm
Viene el control ActiveX, con un programa de ejemplo completo y su documentación. Ese programa, en su tiempo, lo modifiqué completamente para hacer un CamSpy, haciendo capturas de la cámara cada cierto intervalo de tiempo y enviándolas por TCP/IP incluyendo la fecha de la captura en la imagen.

Saludos!!


Título: Re: Video en tiempo real
Publicado por: Thaorius en 17 Julio 2005, 21:13 pm
Tambien, podes bajarte ICImagingControl
www.icimagingcontrol.com
El problema es que es trial por 2 meses.

Saludos


Título: Re: Video en tiempo real
Publicado por: RJ-45 en 18 Julio 2005, 01:23 am
Muchas gracias a los 2, eso es exactamente loq ue buscaba ;)
Citar
lo modifiqué completamente para hacer un CamSpy
Y  no será GPL no?  ::)
Ahora veo en la web de  IC Imaging Control esta imagen:
(http://www.imagingcontrol.com/ic/images/ic_ad_web.gif)
y pienso: "coño! si eso es exactamente loq ue quiero hacer!!"

Os explico: es para hacer un software de Astrofotografía, donde la webcam saca imagenes y debo poner un "punto de mira" a una estrella para seguirla manualmente. Como podría hacer que el punto de mira se pusiese donde yo quiera, y el video siguiera normal?

Un saludo y gracias de nuevo


Título: Re: Video en tiempo real
Publicado por: Thaorius en 18 Julio 2005, 01:47 am
La IC trae mucha documentacion y ejemplos, leelos.


Título: Re: Video en tiempo real
Publicado por: goodbye en 18 Julio 2005, 09:18 am
Por si les interesa como se hace usando la Api miren el siguiente post:

http://foro.elhacker.net/index.php/topic,75096.msg345832.html#msg345832


Título: Re: Video en tiempo real
Publicado por: RJ-45 en 19 Julio 2005, 11:53 am
Ya estoy trateando con el ICImagingControl, y tengo el primer problema

Inserto el codigo siguiente:
Código:
Private Sub Form_Load()
   ICImagingControl1.Device = "AIPTEK PenCam"
   ICImagingControl1.VideoFormat = "CIF (352x288)"
   ICImagingControl1.LiveStart
End Sub
Y al ejecutarlo me dice que no se encuentra el dispositivo, que mire las conexiones del cable

¿Alguna idea de por que pasa esto?


Título: Re: Video en tiempo real
Publicado por: Thaorius en 19 Julio 2005, 15:28 pm
"AIPTEK PenCam", seguro que se llama haci?

Hace una cosa. borra la linea de codigo:
ICImagingControl1.Device = "AIPTEK PenCam"

Ahora, anda a las propiedades del control. en la propiedad Device, desplega la lista. Te salen todas las camaras posibles. Haci no le erras.

Saludos


Título: Re: Video en tiempo real SIN OCX
Publicado por: Krnl64 en 17 Enero 2006, 05:01 am
Modulo------ ModWebcam

Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long

Public mCapHwnd As Long

Public Const CONNECT As Long = 1034
Public Const DISCONNECT As Long = 1035
Public Const GET_FRAME As Long = 1084
Public Const COPY As Long = 1054
------------------------------------------------

Resto de codigo
--------------------


Private Sub cmdStart_Click()
cmdStart.Enabled = False
cmdStop.Enabled = True
mCapHwnd = capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 320, 240, Me.hwnd, 0)
DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0
tmrMain.Enabled = True
End Sub

Private Sub cmdStop_Click()
cmdStart.Enabled = True
cmdStop.Enabled = False
tmrMain.Enabled = False
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If cmdStop.Enabled = False Then
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
End If
End Sub

Private Sub tmrMain_Timer()
On Error Resume Next
        SendMessage mCapHwnd, GET_FRAME, 0, 0
        SendMessage mCapHwnd, COPY, 0, 0
        picOutput.Picture = Clipboard.GetData
        Clipboard.Clear
End Sub


'' Espero que sea de utilidad y orientacion