Video en tiempo real

Iniciado por RJ-45, 17 Julio 2005, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

RJ-45

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


¿Te gusta el mini-banner? Pidemelo!

xavierote

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!!

Thaorius

Tambien, podes bajarte ICImagingControl
www.icimagingcontrol.com
El problema es que es trial por 2 meses.

Saludos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

RJ-45

Muchas gracias a los 2, eso es exactamente loq ue buscaba ;)
Citarlo modifiqué completamente para hacer un CamSpy
Y  no será GPL no?  ::)
Ahora veo en la web de  IC Imaging Control esta imagen:

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


¿Te gusta el mini-banner? Pidemelo!

Thaorius

La IC trae mucha documentacion y ejemplos, leelos.
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

goodbye

#5
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
Al lado de la dificultad está la facilidad.
Cambiad de placeres, pero no cambies de amigos.
Aceptar un favor de un amigo, es hacerle otro.

RJ-45

Ya estoy trateando con el ICImagingControl, y tengo el primer problema

Inserto el codigo siguiente:
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?


¿Te gusta el mini-banner? Pidemelo!

Thaorius

"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
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

Krnl64

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