¿Cuál es la diferencia entre OpenCV 2.4.11 y 3.0.0
opencv3.0 (3)
3.0.0 debería traer muchas características nuevas, pero actualmente es beta y no la versión oficial (puede ser inestable). El último lanzamiento estable oficial fue 2.4.11.
Utilice 3.0.0 si hay funciones que no recupera en 2.4.11 o si es aventurero (3.0.0beta es excelente y la versión final debería llegar pronto). Si desea seguridad sin necesidad adicional, use 2.4.11.
La última versión de OpenCV muestra 2.4.11 Feb, 2015 que es más reciente que 3.0.0 que está en Beta. Cuál es la diferencia entre ellos. ¿Debo usar OpenCV 2.4.11 sobre 3.0.0 ya que he encontrado pocos errores en 3.0.0. ¿Cómo funcionan sus lanzamientos?
Además de las respuestas proporcionadas anteriormente, otra diferencia importante es que la detección de funciones SIFT / SURF se ha eliminado del paquete predeterminado de openCV 3.0. Como están patentados, openCV ha trasladado algoritmos "no libres" a un paquete diferente:
opencv_contrib
Aunque hay nuevas funciones (como detección de texto, detector KAZE) en OpenCV 3.0, para la mayoría de los desarrolladores, esta comparación no se trata de características. Se trata de velocidad . A menos que esté inmediatamente en producción, le sugiero que use OpenCV 3.0. Además, esto está lejos de ser aventurero.
- La diferencia clave es la API transparente en OpenCV 3.0. Casi todos los métodos de OpenCV 3.0 son acelerados por OpenCL. Entonces, todos los métodos podrían ejecutarse en GPU y esto podría conducir a una mejora del 10 al 230%. El único cambio requerido en su código es usar
UMat
donde solía usarMat
. Muestras ( 1 ). Si necesita este rendimiento en OpenCV 2.4. *,cv::ocl::*
invocar explícitamente loscv::ocl::*
ocv::gpu::*
. - Si eres un desarrollador de Java, es incluso mejor. Los contenedores Java para clases / métodos que antes no estaban disponibles ahora se proporcionan en OpenCV 3.0 (ver KalmanFilter ampliamente utilizado)
- Hay cambios como la reestructuración interna del módulo, que desde el punto de vista de un desarrollador, es menor ya que eso podría resolverse cambiando los encabezados de OpenCV en su código.
Sobre el ciclo de lanzamiento, un vistazo rápido a OpenCV github repo ( 2 ) muestra que la solicitud de extracción se dirige principalmente a la rama maestra que es para OpenCV 3.0. Así que supongo que las principales correcciones de errores podrían transferirse a la rama 2.4. *.
Para más información, lea las diferencias ( 3 ) y ( 4 ). Acerca de los errores encontrados en la beta 3.0, podría ser útil si pudiera generarlos con una muestra mínima en ejecución completa en la página de problemas de OpenCV ( 5 ).