Boost.GIL
Bibliothèque d'images génériques C++ open source
API C++ qui extrait les représentations d'images des algorithmes et prend en charge l'utilisation d'images simples et complexes. Générez un histogramme, calculez les gradients d'image, la convolution et le rééchantillonnage, etc.
Les images sont la partie fondamentale de nombreux projets liés aux graphiques, à la vidéo numérique, à la vision informatique et au traitement de l'image. De plus, les images peuvent être représentées de diverses façons (espace de couleur, profondeur, ordre des canaux, politique d'alignement, etc.). Il est donc très difficile de travailler à un nouveau projet lié à l'image qui peut être générique et efficace. Boost Generic Image Library (IL) est une bibliothèque ouverte qui permet aux concepteurs de logiciels de travailler avec des images simples et complexes dans leurs C++ applications.
La grande chose à propos de la bibliothèque Boost.IL est qu'elle recueille des représentations d'images d'algorithmes et permet d'établir un code d'écriture qui peut fonctionner sur une variété d'images. Il rend donc les emplois des développeurs faciles en leur permettant d'écrire un code une fois et de le faire pour tout type d'image.
La bibliothèque Boost.IL est conçue comme un compliment TL et Boost. Un autre aspect important de la bibliothèque est la rapidité et la flexibilité. La vitesse a été un élément clé de la conception de la bibliothèque. Vous pouvez facilement définir tout paramètre d'image au moment de l'exploitation pour un coût de rendement très mineur par rapport à de nombreuses autres bibliothèques. Il appuie plusieurs éléments importants tels que les pixels non conçus par les os, les gradients d'image de calcul, l'intégration des bottes, l'attribution d'un canal à un pixel à gray, la consolation
Premiers pas avec Boost.GIL
Le moyen le plus simple d'installer Boost.GIL consiste à utiliser GitHub. Veuillez utiliser la commande suivante pour une installation fluide
Installez Boost.GILvia GitHub.
git clone --https://github.com/boostorg/gil
Lire et écrire des images
L'histogramme est la représentation graphique de la distribution tonale d'une image numérique. Dans le contexte du traitement d'images, l'histogramme d'une image fait normalement référence à un histogramme des valeurs d'intensité des pixels. La bibliothèque Boost.GIL permet aux développeurs de logiciels de générer un histogramme dans leur propre application à l'aide de code C++. Il peut être généré en comptant le nombre de valeurs de pixels qui tombent dans chaque bac. Vous pouvez également calculer facilement l'histogramme de luminosité de l'image.
Image par écrit via C++ API
#define png_infopp_NULL (png_infopp)NULL
#define int_p_NULL (int*)NULL
#include
#include
using namespace boost::gil;
int main()
{
rgb8_image_t img(512, 512);
rgb8_pixel_t red(255, 0, 0);
fill_pixels(view(img), red);
png_write_view("redsquare.png", const_view(img));
}
Opérations d'image au niveau pixel à l'aide de l'API C++
La bibliothèque de la source ouverte Boost.IL a fourni un soutien complet aux opérations d'image de pixel dans ses C++ applications. La bibliothèque a inclus certaines opérations utiles qui permettent aux utilisateurs de manipuler des valeurs pixels, des pointeurs pixels et des références pixel, comme la fabrication d'un pixel, l'accès à un canal, la comparaison des deux canaux de construction
Convertir l'espace de color à Grayscale via C++
template
void x_luminosity_gradient(SrcView const& src, DstView const& dst)
{
using gray_pixel_t = pixel::type, gray_layout_t>;
x_gradient(color_converted_view(src), dst);
}
Transformation de l'image à l'intérieur de C++ Apps
La bibliothèque Boost.IL, source ouverte, donne aux programmateurs de logiciels la possibilité de tourner des images avec quelques lignes de code. Le Boost.IL soutient diverses fonctions de transformation de l'image qui peuvent effectuer une rotation, une image de feuille orientée verticalement ou horizontalement, extraire une sous-image rectangulaire, appliquer la conversion de la couleur,
Transformation des images par C++
template
void y_gradient(const SrcView& src, const DstView& dst) {
x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
}