Bibliothèque Open Source de traitement d'images plus rapide pour C++
Créez, manipulez, dessinez, divisez, copiez et convertissez des formats d'image populaires ; Appliquez des filtres, divisez deux images, grillez une image via la bibliothèque C++ gratuite.
La libvips est une bibliothèque de traitement d'image avancée open source qui utilise très peu de mémoire et effectue des opérations très rapides. La bibliothèque peut facilement gérer de grandes images et prend en charge une gamme décente de formats de fichiers image, tels que JPEG, TIFF, PNG, WebP, HEIC, FITS, Matlab, OpenEXR, PDF, SVG, HDR, PPM / PGM / PFM, CSV, GIF , Analyser, NIfTI, DeepZoom et OpenSlide. Il peut facilement charger des images via ImageMagick ou GraphicsMagick, ce qui lui permet de travailler avec des formats comme DICOM.
Le primitif de la libération est appliqué de façon raisonnable et certaines techniques d'utilisation comme la production de code à temps réel contribuent à accélérer le traitement des images. En comparaison avec d'autres bibliothèques de traitement d'images, on a noté que la libération a peu besoin d'AM et qu'elle est plus rapide, surtout sur les machines à caps multiples. C'est principalement en raison de l'architecture intelligente qu'elle utilise qui divise automatiquement le flux de travail de l'image.
La bibliothèque fournit un soutien pour une vaste gamme de types numériques, allant de 8 bits à l'orbite complexe 128-. La plupart des bibliothèques de traitement de l'image utilisent des opérations filées, mais la libris, d'autre part, met le fil à l'image en système et attribue une copie de l'ensemble du pipeline d'image à chaque fil. Ce style de filage horizontal permet une meilleure utilisation des caches de transformateurs et réduit le verrouillage.
La bibliothécaire est une bibliothèque de traitement d'images qui offre un meilleur rendement que de nombreuses autres bibliothèques. La bibliothèque a apporté son soutien à plusieurs caractéristiques importantes de traitement d'images, en divisant deux images, en dessinant un cercle sur l'image, en copier une image, en peignant une autre image.
Premiers pas avec libvips
Clonez les dernières sources à l'aide de la commande suivante.
Installer la libération par commande de git
git clone git://github.com/libvips/libvips.git
Construire à partir de git nécessite plus de packages, vous aurez besoin d'au moins gtk-doc et gobject-introspection.
Installez les packages libvips via la commande git
./autogen.sh
make
sudo make install
Rendu plus rapide des images via l'API C++
La bibliothécaire a fourni des fonctionnalités pour la création et la manipulation d'images plus rapides sur toutes les plateformes de pointe. Certaines des principales bibliothèques de traitement d'images, comme ImageMagick et Gt, sont très puissantes et offrent des caractéristiques avancées pour travailler avec des images, mais ont besoin d'une grande mémoire pour traiter les images. D'autre part, la libération peut faire pratiquement la même activité que ImageMagick mais beaucoup plus rapide et avec une empreinte de mémoire relativement faible.
Enregistrer l'image dans d'autres formats pris en charge
La bibliothèque open source libvips a fourni un ensemble d'opérations qui chargent et enregistrent des images dans une variété de formats. La bibliothèque inclut une prise en charge intégrée pour l'enregistrement d'images dans des formats populaires tels que TIFF, JPEG, PNG, Analyze, PPM, OpenEXR, CSV, Matlab, Radiance, RAW, FITS, WebP, SVG, PDF, GIF et VIPS. Le VipsForeign peut être utilisé pour charger et enregistrer des images dans une variété de formats.
Lire et écrire Images à la mémoire par 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 );
}
Redimensionnement d'image plus rapide
La bibliothèque open source libvips donne aux développeurs de logiciels le pouvoir de redimensionner les images à la volée dans leurs propres applications. Tout d'abord, vous devez charger l'image à partir du référentiel d'images en fournissant un nom d'image et une adresse complète. Après cela, vous pouvez le redimensionner à la largeur et à la hauteur spécifiées en fonction de vos besoins. Après cela, vous pouvez l'enregistrer à l'emplacement de votre choix avec la nouvelle taille.
Lire et écrire Images à la mémoire par 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 );
}
Filtrage d'images via l'API C++
Le filtrage de l'image est un élément précieux qui est utilisé dans diverses applications de traitement de l'image et de vision informatique dans le monde. La bibliothèque de la bibliothécaire fournit un soutien complet au filtrage d'images par C++ commandements. Les caractéristiques comme le lissage, le déroulement et l'amélioration des bords sont quelques exemples d'opérations de traitement des images mises en oeuvre avec filtrage. La bibliothèque comprenait également des filtres NG comme la différence à gauche, une moyenne de prédicteur gauche et ascendant, adaptatif, choisir automatiquement le meilleur voisin et ne pas filtrer. Il comprend également les filtres d'importation qui peuvent charger libMagick et OpenSlide.