2010-02-17 24 views
22

Estaba pensando en probar OpenCV para un proyecto y noté que tenía C, C++ y Python.Procesamiento de imágenes OpenCV - C++ vs C vs Python

Estoy tratando de averiguar si debería usar C++, C o Python, y me gustaría usar lo que tenga el mejor soporte para OpenCV.

¿Tan solo mirando la página de índice para la documentación variada parece que los enlaces de C++ pueden tener más características que los demás? ¿Es esto cierto?

Si C++ tiene más enlaces, parece que sería una opción más obvia para mí, pero tenía curiosidad si realmente tiene más características, etc. que las demás.

Gracias!

+1

Ojalá hubiera hecho esta pregunta antes de probar opencv –

Respuesta

11

La interfaz de Python aún se está desarrollando, mientras que la interfaz C++ (especialmente con la nueva clase Mat) es bastante madura. Si te sientes cómodo con C++, te recomiendo usarlo; de lo contrario, puedes comenzar a usar Python y contribuir con cualquier función que creas que necesita OpenCV :)

14

En realidad, la vinculación de Python se completó starting with release 2.2. Así que iría con Python si fuera usted, porque el rendimiento será casi el mismo de todos modos, ya que está utilizando bibliotecas c en ambos casos. Sin embargo, python lo llevará más rápido, seguro y gastará más tiempo en su algoritmo en lugar de hacer que las cosas se construyan y ejecuten sin mencionar problemas de administración de memoria

+3

¿Conoces algún punto de referencia C++ vs. Python? – Chris

4

Creo que depende de qué tan competente sea en C++. La interfaz Mat parece más moderna que la antigua interfaz IPLImage C. El problema que estoy teniendo es que la mayoría de los ejemplos que encontrarás en la web, o incluso aquí en stackoverflow son para la interfaz C (por ejemplo, cvCvtColor), no para la interfaz C++. Así que realmente estoy luchando para portar los ejemplos de C a C++.

1

Incluso si eres muy hábil en C o C++, deberías usar Python para acelerar tu desarrollo (supongo que un factor de 4x). El rendimiento es realmente bastante igual.