Estoy haciendo un programa en C# para conectarme a una cámara web y hacer algunas manipulaciones de imagen con ella. Tengo una aplicación que funciona que usa api win32 (avicap32.dll) para conectarse a la cámara web y enviarle mensajes que la envía al portapapeles. El problema es que, aunque es accesible desde la pintura, leerlo del programa da como resultado punteros nulos.Uso de la cámara web en C#
Este es el código que utilizo para conectar la cámara web:
mCapHwnd = capCreateCaptureWindowA("WebCap", 0, 0, 0, 320, 240, 1024, 0);
SendMessage(mCapHwnd, WM_CAP_CONNECT, 0, 0);
SendMessage(mCapHwnd, WM_CAP_SET_PREVIEW, 0, 0);
Y esto es lo que yo uso para copiar la imagen en el portapapeles:
SendMessage(mCapHwnd, WM_CAP_GET_FRAME, 0, 0);
SendMessage(mCapHwnd, WM_CAP_COPY, 0, 0);
tempObj = Clipboard.GetDataObject();
tempImg = (System.Drawing.Bitmap)tempObj.GetData(System.Windows.Forms.DataFormats.Bitmap);
Theres comprobación de errores que no tengo eliminado del código para hacerlo más corto.
Gracias de antemano :)
¡Gracias! Fui por esta ruta, después de maldecir un poco a Microsoft sobre misteriosos errores, instalé Visual C++ 2005 Express y funciona de maravilla ahora :) Por qué el paquete redistribuible no funcionó es anyones guess ... –
OpenCV.NET ya no se mantiene muy activo, pruebe Emgu CV si no tiene suerte con OpenCV.NET –