2011-10-24 10 views
13

Así que tenemos este curso de procesamiento de imágenes en la universidad y usaremos OpenCV extensamente. El problema es que OpenCV usa C++, pero yo soy mucho más fluido en C# que en C++. Sé que hay envoltorios para OpenCV (OpenCVDotNet, SharperCV, EmguCV, ...) Pero no sé cuál elegir.¿Vale la pena usar los contenedores .Net OpenCV?

Mis preguntas son:

  • Cuál envuelve la mayoría/todas las funcionalidades OpenCV?
  • ¿Vale la pena usarlas? (Puede no actualizarse a menudo, carecer de funcionalidad o velocidad, ...)
  • ¿O debería estar mejor cepillando mis habilidades en C++?

Nota: sé que mi pregunta es un posible duplicado de this one pero es antigua (de 2008) y las cosas pueden haber cambiado.

+2

Puede contestar sus dos primeras preguntas mirando las respectivas páginas/repos de información de la envoltura. Podrá ver la cobertura, así como la actividad, en torno a cada una. –

+1

@NeilN Nunca he usado OpenCV antes, así que no sabría cuánta cobertura tienen estos envoltorios de OpenCV. es por eso que estoy buscando saber de las personas que trabajaron con cualquiera de estas bibliotecas – Nasreddine

+0

Lo que quiero decir es que cada página de lib debe tener documentación sobre lo que está/no está cubierto. –

Respuesta

11

No he utilizado EmguCV, pero he utilizado OpenCV desde hace un tiempo.

Desde la página web de SharperCV:
La envoltura Emgu CV.Net es nuestra recomendación actual si desea utilizar OpenCV.

Y, OpenCVDotNet se parece más a un recinto de pruebas académico, así que si fuera yo, usaría EmguCV para cualquiera de mis proyectos de investigación que involucraban C#. Principalmente porque se mantiene activamente, y tiene la mayoría de las características de las envolturas disponibles en la actualidad.

16

Probé EmguCV. La gama de funcionalidades que admite está bien. Pero si su proyecto es algo en lo que la velocidad es un problema, entonces sería mejor repasar sus habilidades en C++.

No sé mucho sobre otras envolturas. Estuve en tu misma posición una vez. Trabajé en emgucv durante mis estudios académicos y tuve que cambiar a C++ en mi profesión.

Créeme, te vas a encontrar demasiado difícil de pasar a C++.

3

Como una actualización, puedo corroborar las respuestas dadas previamente.

he utilizado tanto OpenCV con C++ y el EMGU Envoltura tanto para la investigación y el trabajo y estoy de acuerdo en parte con la mayoría de la gente.

EMGU CV puede ser fácil de aprender y su código será mucho más fácil de entender, se requerirá menos líneas de código y hay una buena variedad de funciones que puede llamar. Pero no está completo.

Muchas funciones no proporcionar toda la funcionalidad prevista en un principio que se encuentra con OpenCV 3.0, por ejemplo, FindNonZero() no funciona exactamente igual que la función que está envolviendo y SetValue() me ha costado crear errores de tiempo de ejecución difíciles de depurar.

Por otro lado, OpenCV proporciona un gran apoyo en comparación con cualquier otro mecanismo que puede encontrar en línea y que va a trabajar con la mayoría de las bibliotecas en marcha hasta la fecha. OpenCV 3.1 es un gran lanzamiento y no encontré problemas para ejecutarlo en Xcode o Visual Studio.

Por lo tanto, recomendaría a cualquiera que quiera sumergirse en la Visión por Computadora y el Procesamiento de Imágenes para ir directamente a OpenCV C++. Si solo desea trabajar en problemas menos complejos, puede optar por EMGU (no puedo recomendar a otros porque no estoy familiarizado).