2009-09-13 32 views
12

Recientemente volví al procesamiento de imágenes. La mayor parte de lo que utilicé anteriormente fue Matlab. Me gustaría cambiar a un lenguaje más conveniente y abierto.Bibliotecas de procesamiento de imágenes

Después de haber usado la biblioteca de Python PIL y entendí mal que tenía, incorporados, solo núcleos de filtro de 3x3 y 5x5, decidí preguntar aquí si alguien sabe de buenas bibliotecas de procesamiento de imágenes.

¿Cuáles son las bibliotecas de procesamiento de imágenes existentes (en cualquier idioma)? ¿Son rápidos/maduros/aún en fase temprana?

+0

¿Qué tipo de funciones desea realizar? ¿Qué tan completo de una biblioteca necesitas? –

+0

@James, mis propias necesidades son bastante pequeñas por el momento, pero tengamos esta pregunta sea lo más amplia posible. Al menos, poder filtrar con un kernel arbitrario es imprescindible para cualquier biblioteca de procesamiento de imágenes decente. Supongo que cosas como FFT o transformaciones geométricas también son parte de los conceptos básicos. – glmxndr

Respuesta

4

Eche un vistazo a la pitón Scipy library. Es una fuente abierta rápida biblioteca de manipulación de matriz n-dimensional en python. Tiene todas las herramientas básicas de procesamiento de imágenes:

que no tiene todas las funciones más avanzadas de la imagen de Matlab Processing Toolbox. Sin embargo, como sugirió Vereb, muchos de esos se pueden encontrar en ITK (también disponible en sabor python).

Como usted, quería alejarme de matlab a un lenguaje dinámico como Python. Y como usted, me decepcionó PIL, cuando me di cuenta de que era solo un ImageMagick en Python. Aún necesitará usar PIL para leer/escribir imágenes.

Para obtener una experiencia similar a Matlab procesamiento de imágenes con el pitón obtener Numpy/Scipy, Matplotlib y Spyder. Todo lo cual y más está convenientemente empaquetado en Python(X,Y) solo para Windows.

2

OpenCV tiene enlaces Python http://opencv.willowgarage.com - Vereb como se ha mencionado, ITK es también de primera clase.

+0

Y openCV usará IPP si está instalado –

12

OpenCV es una muy rápida y madura en C. El lado malo es que no está orientado a objetos, que no es uno de sus criterios, supongo. Se incluye mucha funcionalidad, como el análisis de componentes conectados.

JAI (Java Advanced Imaging) es rápido y muy maduro, y también está orientado a objetos. Puede tomar un poco calentarse con esta biblioteca. Pero poderoso y manejable.

Si está planeando hacer alguna investigación académica o creación de prototipos para OpenCV, si su objetivo es desarrollar un software comercial o de gran escala, recomiendo JAI.

ACTUALIZACIÓN

OpenCV ahora tiene C++ y APIs Python. He estado usando OpenCV C++ durante 3 semanas, la API es mucho mejor que C API. OpenCV es más estable y la comunidad ha crecido. Y hay muchos algoritmos avanzados listos para usar en OpenCV. Vale la pena considerar

6

Me sorprende que nadie haya mencionado ImageMagick. Es una biblioteca de procesamiento de imágenes de código abierto muy popular y tienen enlaces para prácticamente cualquier idioma.

+0

ImageMagick también es MUY lento en muchas tareas. – unixman83

3

Intel Performance Primitives es muy rápido y muy maduro. La mayor parte de la funcionalidad es de bajo nivel, desde filtros lineales, operaciones aritméticas, FFT, wavelets, transformaciones geométricas (...), pero también contiene algunos algoritmos de alto nivel, p. para pintar o segmentar. Es extremadamente rápido y está bien documentado. Definitivamente lo recomendaría para desarrollo comercial (no estoy seguro si hay licencias de código abierto).

2

Como alguien ha mencionado, puede usar ITK, que podría usarse con VTK como un juego de herramientas de visualización. El único problema que encontrarás es que no son muy fáciles de construir si vas a usar sus envoltorios de Python (y aún más difícil si intentas construir el proyecto de código abierto de terceros wrapITK).

pero se puede usar Python (x, y), que viene con todas estas herramientas (y muchos más) que se ejecuta fuera de la caja y en Python: http://www.pythonxy.com

espero que ayude.

2

La biblioteca de procesamiento de imágenes más rápida y profesional (y SDK completo) es HALCON. (www.mvtec.com) No es de código abierto, pero es totalmente compatible con C#, C++, C, VB.Net, etc. ...

Cuestiones relacionadas