Biblioteca de procesamiento de imágenes más rápido de código abierto para C++
Cree, manipule, dibuje, divida, copie y convierta formatos de imagen populares; Aplique filtros, divida dos imágenes, cuadricula una imagen a través de la biblioteca gratuita de C++.
libvips es una biblioteca avanzada de procesamiento de imágenes de código abierto que usa muy poca memoria y realiza operaciones muy rápidas. La biblioteca puede manejar fácilmente imágenes grandes y admite una gama decente de formatos de archivo de imagen, como JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM/PGM/PFM, CSV, GIF , Analizar, NIfTI, DeepZoom y OpenSlide. Puede cargar imágenes fácilmente a través de ImageMagick o GraphicsMagick, lo que le permite trabajar con formatos como DICOM.
La bibliotecaria primitiva se aplica sensible y algunas técnicas de uso como la generación del código de tiempo de ejecución ayudan a procesar rápidamente imágenes. En comparación con otras bibliotecas de procesamiento de imágenes, se observó que las bibliotecas necesitan poco AM y funcionan más rápido, especialmente en máquinas con múltiples Caps. Esto se debe principalmente a la arquitectura inteligente que utiliza que divide automáticamente el flujo de trabajo de imagen.
La biblioteca proporciona soporte para una gran variedad de tipos numéricos, desde simple int 8-bit hasta el complejo 128-bit. La mayoría de las bibliotecas de procesamiento de imágenes utilizan operaciones roscados, pero las bibliotecas, por otro lado, ponen el hilo en la imagen en el sistema y asignan una copia de todo el canal de imagen a cada hilo para trabajar en él. Este estilo de rosca horizontal hace un mejor uso de caché de procesador y reduce el bloqueo.
La biblioteca es una biblioteca de procesamiento de imágenes que ofrece mejor rendimiento que muchas otras bibliotecas. La biblioteca ha proporcionado soporte para varias características importantes de procesamiento de imágenes como dibujar imágenes, dividir dos imágenes, dibujar un círculo en una imagen, copiar una imagen, pintar una imagen en otra imagen, dibujar una imagen
Primeros pasos con libvips
Clona las últimas fuentes usando el siguiente comando.
Instalar bibliotecas mediante comando git
git clone git://github.com/libvips/libvips.git
Construir desde git necesita más paquetes, necesitará al menos gtk-doc y gobject-introspection.
Instale paquetes libvips a través del comando git
./autogen.sh
make
sudo make install
Representación de imágenes más rápida a través de la API de C++
La biblioteca ha proporcionado funcionalidad para una creación de imágenes más rápida y manipulación en todas las plataformas líderes. Algunas de las principales bibliotecas de procesamiento de imágenes como ImageMagick y bibliotecas Gt son muy poderosas y proporcionan características avanzadas para trabajar con imágenes, pero necesitan una gran cantidad de memoria para procesar imágenes. Por otro lado, las bibliotecas pueden hacer prácticamente lo mismo activo que ImageMagick, pero mucho más rápido y con una huella comparativamente pequeña de memoria
Guardar imagen en otros formatos compatibles
La biblioteca de código abierto libvips ha proporcionado un conjunto de operaciones que cargan y guardan imágenes en una variedad de formatos. La biblioteca ha incluido soporte integrado para guardar imágenes en formatos populares como TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF y VIPS. El VipsForeign se puede utilizar para cargar y guardar imágenes en una variedad de formatos.
Leer y escribir Imágenes a la memoria vía C++ API
int
main( int argc, char **argv )
{
gchar *buf;
gsize len;
int i;
if( VIPS_INIT( argv[0] ) )
vips_error_exit( NULL );
if( argc != 2 )
vips_error_exit( "usage: %s FILENAME", argv[0] );
if( !g_file_get_contents( argv[1], &buf, &len, NULL ) )
vips_error_exit( NULL );
for( i = 0; i < 10; i++ ) {
VipsImage *image;
void *new_buf;
size_t new_len;
printf( "loop %d ...\n", i );
if( !(image = vips_image_new_from_buffer( buf, len, "",
"access", VIPS_ACCESS_SEQUENTIAL,
NULL )) )
vips_error_exit( NULL );
if( vips_image_write_to_buffer( image,
".jpg", &new_buf, &new_len,
"Q", 95,
NULL ) )
vips_error_exit( NULL );
g_object_unref( image );
g_free( new_buf );
}
g_free( buf );
vips_shutdown();
return( 0 );
}
Cambio de tamaño de imagen más rápido
La biblioteca libvips de código abierto brinda a los desarrolladores de software el poder de cambiar el tamaño de las imágenes sobre la marcha dentro de sus propias aplicaciones. Primero, debe cargar la imagen desde el repositorio de imágenes proporcionando un nombre de imagen y una dirección completa. Después de eso, puede cambiar su tamaño al ancho y alto especificado según sus necesidades. Después de eso, puede guardarlo en la ubicación de su elección con el nuevo tamaño.
Leer y escribir Imágenes a la memoria vía C++ API
int
vips_resize( VipsImage *in, VipsImage **out,
double scale, ... )
{
va_list ap;
int result;
va_start( ap, scale );
result = vips_call_split( "resize", ap, in, out, scale );
va_end( ap );
return( result );
}
Filtrado de imágenes a través de la API de C++
El filtrado de imágenes es una característica valiosa que se utiliza en diversas aplicaciones de procesamiento de imágenes y visión informática en todo el mundo. La biblioteca proporciona soporte completo para filtrar imágenes a través de C++ comandos. Características como la suavización, sucediendo y mejora de los bordes son algunos ejemplos de operaciones de procesamiento de imágenes implementadas con filtrado. La biblioteca también incluyó filtros de GN como la diferencia a la izquierda, un promedio de izquierda y arriba, adaptativo, escoge mejor predictor vecino automáticamente, y sin filtrado. También incluye filtros de importación que pueden cargar con libMagick y OpenSlide años.