library example c++ image-processing

example - Bibliotecas de procesamiento de imágenes C++



download cimg library c++ (7)

La biblioteca de Simd es una biblioteca de procesamiento de imágenes de código abierto, diseñada para programadores de C y C ++. Proporciona muchos algoritmos útiles de alto rendimiento para el procesamiento de imágenes, tales como: conversión de formato de píxeles, escalado y filtrado de imágenes, extracción de información estadística de imágenes, detección de movimiento, detección de objetos (cascadas clasificadoras HAAR y LBP) y clasificación, red neuronal.

Los algoritmos están optimizados con el uso de diferentes extensiones de CPU SIMD. En particular, la biblioteca admite las siguientes extensiones de CPU: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 y AVX-512 para x86 / x64, VMX (Altivec) y VSX (Power7) para PowerPC, NEON para ARM.

La biblioteca de Simd tiene C API y también contiene clases y funciones útiles de C ++ para facilitar el acceso a C API. La biblioteca admite enlaces dinámicos y estáticos, compiladores de Windows y Linux de 32 y 64 bits, MSVS, G ++ y Clang, proyectos MSVS y sistemas de compilación CMake.

PS Participo en el desarrollo de este proyecto.

Estoy buscando una biblioteca de C ++ para el procesamiento de imágenes. Necesito la biblioteca para poner un umbral a una foto PPM (foto a color). ¿Debo escribir mi propio código? ¿Qué piensan ustedes?


Me gustaría añadir VIPS a la lista. La biblioteca es especialmente adecuada para máquinas con muchas CPU. Para una comparación, vea los puntos de referencia here .


Muy buena biblioteca es GD2

Esta biblioteca tiene varios enlaces de idiomas, incluyendo C (que por supuesto es compatible con C ++). Es fácil compilar GD como una biblioteca estática o dinámica con realmente cualquier compilador de C ++, incluidos GCC y Visual C ++, y también hay binarios pre-construidos disponibles en Internet. A diferencia de la biblioteca de imágenes Boost, permite cargar / guardar imágenes desde / hacia la memoria y no solo en el disco duro.


Podrías usar la biblioteca de Boost GIL . Es extremadamente potente y versátil y puede satisfacer todas sus necesidades (bueno, sí, es un impulso :) .


Todas las opciones anteriores deben poder hacer lo que usted requiera.

Me gustaría añadir OpenCV a la lista. Es una biblioteca de visión de computadora multiplataforma rápida con un amplio soporte de carga, almacenamiento y procesamiento de imágenes. Está escrito en C, pero tiene una interfaz de C ++ sólida, que he usado en el pasado.

Dicho esto: leer / escribir PPM es sencillo , por lo que si todo lo que necesita es leer y poner un umbral, definitivamente debería considerar hacerlo usted mismo. Se reduciría a la lectura de los bytes PPM en la memoria, la escala de grises promediando los canales de color RGB (tenga en cuenta que promediar los canales RGB es uno, muy simple, método a escala de grises; hay more ), y luego el umbral y la eliminación.


La biblioteca CImg es también una opción popular. Es realmente fácil de usar, liviano y ya tiene implementados muchos operadores de procesamiento de imágenes básicos y avanzados.


Magick++ podría ayudar. Es la versión de biblioteca de ImageMagick.