elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  Libreria Open Computer Vision (openCV) como usarla?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Libreria Open Computer Vision (openCV) como usarla?  (Leído 384 veces)
**Aincrad**

Desconectado Desconectado

Mensajes: 164



Ver Perfil
Libreria Open Computer Vision (openCV) como usarla?
« en: 23 Septiembre 2017, 19:42 »

hola , hoy encontré una librería para vb.net  muy interesante , la cual puede reconocer visualmente objetos , personas , etc.  como snapchat.

hay alguien el el foro que pueda  ayudarme a implementar esta librería en un programa en vb.net 2008 y que use la webcam.

apreciaría si me comenten algún code implementando esta lbreria.  :-*


En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.222


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Libreria Open Computer Vision (openCV) como usarla?
« Respuesta #1 en: 24 Septiembre 2017, 07:46 »

Hola.

OpenCV no es una librería desarrollada en .NET, es una librería "nativa" desarrollada en C/C++. Si quieres usarla en la plataforma .NET entonces tienes que desarrollar una clase que sirva como wrapper de las funciones exportadas en la librería, esto lo harías mediante P/Invokes (Platform Invocation), así como también debes declarar una equivalencia a las enumeraciones y estructuras y demás miembros públicos necesarios que estén definidos en dicha librería.

Ejemplo:

Código
  1. Imports System.Runtime.InteropServices
  2. Imports System.Security
  3.  
  4. Namespace OpenCV.Interop
  5.  
  6.    <SuppressUnmanagedCodeSecurity>
  7.    Friend NotInheritable Class NativeMethods
  8.  
  9.        Private Sub New()
  10.        End Sub
  11.  
  12.        <DllImport("OpenCV.dll", EntryPoint:="Nombre de la función", CharSet:=CharSet.Unicode)>
  13.        Friend Shared Function NombreAMostrarDeLaFunción(
  14.                <[In]> <MarshalAs(UnmanagedType.LPWStr)> ByVal param1 As String,
  15.                    <[In]> <MarshalAs(UnmanagedType.I4)> ByVal param2 As Integer,
  16.                    <[In]> <MarshalAs(UnmanagedType.I4)> ByVal param3 As NombreDeLaEnumeración,
  17.                 <Out> <MarshalAs(UnmanagedType.Struct)> ByRef param4 As NombreDeLaEstructura
  18.        ) As <MarshalAs(UnmanagedType.Bool)> Boolean
  19.        End Function
  20.  
  21.        Friend Enum NombreDeLaEnumeración As Integer
  22.            Name1 = &H1
  23.            Name2 = &H2
  24.        End Enum
  25.  
  26.        <StructLayout(LayoutKind.Sequential)>
  27.        Friend Structure NombreDeLaEstructura
  28.            <MarshalAs(UnmanagedType.SysInt)>
  29.            Friend Field1 As IntPtr
  30.            <MarshalAs(UnmanagedType.U4)>
  31.            Friend Field2 As UInteger
  32.        End Structure
  33.  
  34.    End Class
  35.  
  36. End Namespace
...Debes hacer más o menos eso por cada una de las funciones de OpenCV que quieras utilizar en tu aplicación.

Analizar la firma de cada función o export dentro de una librería y escribir su wrapper equivalente con los tipos de .NET es algo que requiere tiempo aparte de un mínimo de conocimiento en código no administrado, no esperes que alguien lo vaya a hacer por ti... más cuando se trata de una librería de tal magnitud con cientos o miles de miembros diferentes, es una locura.

Por suerte para ti y para cualquiera que desee usar OpenCV en .NET, ya existe gente que ha dedicado su tiempo en desarrollar wrappers de OvenCV para .NET que puedes descargar aquí:

Y por último, te hago saber que para .NET existe AForge, una alternativa a OpenCV completamente administrada, con documentación XML de .NET, y gratuita:

Saludos.


« Última modificación: 24 Septiembre 2017, 12:23 por Eleкtro » En línea


[/cent
tincopasan


Desconectado Desconectado

Mensajes: 997


No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Libreria Open Computer Vision (openCV) como usarla?
« Respuesta #2 en: 24 Septiembre 2017, 09:21 »

Gracias por el dato Elektro uso opencv en python y no conocia la alternativa para .net
En línea

Eleкtro
🌍 🕉️ 🛏️ Novato Astral 🛏️ 🕉️ 🌍 y...
Moderador Global
***
Desconectado Desconectado

Mensajes: 9.222


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Libreria Open Computer Vision (openCV) como usarla?
« Respuesta #3 en: 24 Septiembre 2017, 12:27 »

Gracias por el dato Elektro uso opencv en python y no conocia la alternativa para .net

Pues ahora me entero que también programas en .NET :P, a ver si te vemos pronto ayudando a usuarios necesitados por este subforo.

Por si os sirve a los dos: según todo lo que leí, parece ser que Emgu CV es el wrapper más popular, actualizado y estable, y dispone de buena documentación XML:

Y varios samples para C# y VB.NET:

Saludos.
« Última modificación: 24 Septiembre 2017, 12:30 por Eleкtro » En línea


[/cent
**Aincrad**

Desconectado Desconectado

Mensajes: 164



Ver Perfil
Re: Libreria Open Computer Vision (openCV) como usarla?
« Respuesta #4 en: 25 Septiembre 2017, 01:10 »

Gracias de nuevo Elecktro , el Emgu CV se ve mejor voy a empezar a trabajar en ello .  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines