2010-08-17 8 views
19

Como desarrollador práctico, me gustaría hacer un buen algoritmo para mi tarea específica, construido a partir de bloques, como 'extracción de límites' o 'corrección de rayos gamma', etc., pero no quiero implementar la rueda, haciendo todas esas cosas, así que deambulo, si hay alguna poderosa biblioteca CV, como OpenCV de C++?¿Cuál es la mejor biblioteca de visión por computador Java de código abierto?

Decir "el mejor", me refiero a la biblioteca que tienen propiedades siguientes:

  • Lote de diferentes algoritmos implementados
  • extensibilidad - puedo crear cosas nuevas en cuanto a la biblioteca
  • alto rendimiento
  • Seguridad de rosca
+2

Es posible que desee explicar exactamente qué significa "lo mejor" para usted. –

+0

Gracias, añadiré una descripción como –

Respuesta

11

Chamán, He estado buscando un largo tiempo para una biblioteca de procesamiento de imágenes comparable a opencv en Java. Por la cantidad de tareas automatizadas que realiza Opencv, no hay nada que se le acerque para las aplicaciones avanzadas de tipo de visión artificial.

En términos de procesamiento de imágenes, aunque imagej tiene una gran cantidad de algoritmos y complementos preimplementados. Uso esta biblioteca todo el tiempo para preprocesar las cosas que necesito enviar a las utilidades de visión de máquina de OpenCV. Esto también es de código abierto con formas fáciles de agregar funciones adicionales a través de complementos o manipulaciones directas, por lo que creo que podría satisfacer la mayoría de sus requisitos.

30

que podría estar interesado en una biblioteca de código abierto de Java pura visión por ordenador he desarrollar, BoofCV. BoofCV es compatible con muchas operaciones comunes de procesamiento de imágenes, detección avanzada de funciones, eliminación de ondas, calibración de cámaras, visión estéreo y estructura desde el movimiento. También es muy rápido. Actualmente tiene la implementación más rápida de SURF de cualquier biblioteca de código abierto, incluidas las de C/C++. En cuanto a velocidad, es muy competitivo con OpenCV para algoritmos de visión de nivel medio a alto. OpenCV es, por supuesto, más rápido para el procesamiento de imágenes de bajo nivel.

Sitio Web: http://boofcv.org

OpenCV vs BoofCV: http://boofcv.org/index.php?title=Performance:OpenCV:BoofCV

Rendimiento SURF Estudio: http://boofcv.org/index.php?title=Performance:SURF suficiente

Ok marca. Espero que les guste!

  • Gran parte del código ya está en su lugar, solo falta un par de componentes.
+2

+1 Esto es muy interesante. Me pregunto si tiene templateMatching() desde openCV. – KJW

+0

No sé cómo se evaluó el rendimiento, pero algo no se está sumando.Me gusta mucho Java y C#, pero estoy muy familiarizado con algunos de sus puntos débiles de rendimiento para el procesamiento de datos. Java y C# tienen una debilidad de rendimiento inherente en el análisis de matrices porque ** cada ** acceso a una sola matriz debe ser envuelto en un control en los límites de la matriz para cumplir con las garantías del lenguaje. Para cualquier ciclo cerrado en datos de matriz (como una imagen), esta sobrecarga se vuelve bastante significativa. –

+2

código fuente está disponible. ejecutarlo usted mismo, he tenido otros confirman mis resultados de SURF. Básicamente, estás asumiendo que ambos conjuntos son código son equivalentes, que no lo son ... Verás los problemas de los que estás hablando en las operaciones pesadas de bajo nivel y las bibliotecas C/C++ dominan eso. –

Cuestiones relacionadas