Boost.GIL
Open Source C++ Generisk bildebibliotek
C++ API som abstraherer bilderepresentasjoner fra algoritmer og støtter arbeid med enkle og komplekse bilder. Generer et histogram, beregne bildegradienter, konvolusjon og resampling, og så videre.
Bilder er den grunnleggende delen av mange prosjekter relatert til grafikk, digital video, datasyn og bildebehandling. Dessuten kan bilder representeres på mange forskjellige måter (fargerom, bitdybde, kanalrekkefølge, justeringspolicy, etc.). Så det er veldig utfordrende å jobbe med et nytt bilderelatert prosjekt som kan være både generisk og effektivt. Boost Generic Image Library (GIL) er et åpen kildekode-bibliotek som gir programvareutviklere muligheten til å jobbe med enkle og komplekse bilder i sine egne C++-applikasjoner.
Det flotte med Boost.GIL-biblioteket er at det abstraherer bilderepresentasjoner fra algoritmer og tillater å skrive kode som kan fungere på en rekke bilder med ytelse som kan sammenlignes med håndskrift for en bestemt bildetype. Så det gjør utviklerjobbene enkle ved å la dem skrive kode én gang og få den til å fungere for alle bildetyper.
Boost.GIL-biblioteket er utformet som et STL- og Boost-kompliment. Et annet flott aspekt ved biblioteket er hastighet og fleksibilitet. Hastighet har vært en sentral del av utformingen av biblioteket. Du kan enkelt definere hvilken som helst bildeparameter under kjøretid for en svært liten ytelseskostnad sammenlignet med mange andre biblioteker. Den gir støtte for flere viktige funksjoner som ikke-byte-justerte piksler, databehandlingsbildegradienter, øker integrasjonen, tilordne en kanal til en gråskala-piksel, konvolusjon og resampling, og så videre.
Komme i gang med Boost.GIL
Den enkleste måten å installere Boost.GIL på er å bruke GitHub. Bruk følgende kommando for en jevn installasjon
Installer Boost.GILvia GitHub.
git clone --https://github.com/boostorg/gil
Lese og skrive bilder
Histogram er den grafiske representasjonen av tonefordelingen i et digitalt bilde. I bildebehandlingssammenheng refererer histogrammet til et bilde normalt til et histogram av pikselintensitetsverdiene. Boost.GIL-biblioteket gjør det mulig for programvareutviklere å generere et histogram i sin egen applikasjon ved hjelp av C++-kode. Den kan genereres ved å telle antall pikselverdier som faller i hver boks. Du kan også enkelt beregne lysstyrkehistogrammet til bildet.
Skrive bilde 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));
}
Bildeoperasjoner på pikselnivå med C++ API
Open source-biblioteket Boost.GIL har gitt fullstendig støtte for bildeoperasjoner på pikselnivå i deres egne C++-applikasjoner. Biblioteket har inkludert noen nyttige operasjoner som gjør det mulig for brukere å håndtere pikselverdier, pikselpekere og pikselreferanser, for eksempel å lage en piksel farget, få tilgang til en kanal, sammenligne de to kanalene, konstruere en plan peker, konvertere grå l-verdi til RGB , og så videre.
Konverter fargerom til gråtoner 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);
}
Bildetransformasjon i C++-apper
Boost.GIL-biblioteket med åpen kildekode gir programvareprogrammerere muligheten til å rotere bilder med bare et par linjer med kode. Boost.GIL støtter en rekke bildetransformasjonsfunksjoner som kan utføre enhver aksejustert rotasjon, snu bildet vertikalt eller horisontalt, trekke ut et rektangulært underbilde, bruke fargekonvertering, spesialrotasjoner med 90, 180 eller 270 grader og så på.
Bildetransformasjon via C++ API
template
void y_gradient(const SrcView& src, const DstView& dst) {
x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
}