1. Producten
  2.   Afbeelding
  3.   C++
  4.   Boost.GIL

Boost.GIL

 
 

Open source C++ generieke afbeeldingenbibliotheek

C++ API die afbeeldingsrepresentaties abstraheert van algoritmen en het werken met eenvoudige en complexe afbeeldingen ondersteunt. Genereer een histogram, bereken beeldgradiënten, convolutie en resampling, enzovoort.

Afbeeldingen zijn het fundamentele onderdeel van veel projecten met betrekking tot afbeeldingen, digitale video, computervisie en beeldverwerking. Bovendien kunnen afbeeldingen op veel verschillende manieren worden weergegeven (kleurruimte, bitdiepte, kanaalvolgorde, uitlijningsbeleid, enz.). Dus werken aan een nieuw beeldgerelateerd project dat zowel generiek als efficiënt kan zijn, is een hele uitdaging. Boost Generic Image Library (GIL) is een open source bibliotheek die softwareontwikkelaars de mogelijkheid geeft om met eenvoudige en complexe afbeeldingen te werken in hun eigen C++-applicaties.

Het mooie van de Boost.GIL-bibliotheek is dat het afbeeldingsrepresentaties van algoritmen abstraheert en het mogelijk maakt om code te schrijven die op een verscheidenheid aan afbeeldingen kan werken met prestaties die vergelijkbaar zijn met handschrift voor een bepaald afbeeldingstype. Het maakt het werk van ontwikkelaars dus gemakkelijk doordat ze code één keer hoeven te schrijven en deze voor elk afbeeldingstype te laten werken.

De Boost.GIL-bibliotheek is ontworpen als een STL- en Boost-compliment. Een ander groot aspect van de bibliotheek is snelheid en flexibiliteit. Snelheid is een belangrijk onderdeel geweest van het ontwerp van de bibliotheek. U kunt tijdens runtime gemakkelijk elke afbeeldingsparameter definiëren voor zeer lage prestatiekosten in vergelijking met veel andere bibliotheken. Het biedt ondersteuning voor verschillende belangrijke functies, zoals niet-byte-uitgelijnde pixels, het berekenen van beeldgradiënten, Boosts-integratie, het toewijzen van een kanaal aan een grijsschaalpixel, convolutie en resampling, enzovoort.

Previous Next

Aan de slag met Boost.GIL

De eenvoudigste manier om Boost.GIL te installeren is door GitHub te gebruiken. Gebruik de volgende opdracht voor een vlotte installatie:

Installeer Boost.GIL via GitHub.

git clone --https://github.com/boostorg/gil

Afbeeldingen lezen en schrijven

Histogram is de grafische weergave van de toonverdeling in een digitaal beeld. In de context van beeldverwerking verwijst het histogram van een afbeelding normaal gesproken naar een histogram van de pixelintensiteitswaarden. Met de Boost.GIL-bibliotheek kunnen softwareontwikkelaars een histogram genereren in hun eigen applicatie met behulp van C++-code. Het kan worden gegenereerd door het aantal pixelwaarden te tellen dat in elke bak valt. U kunt ook gemakkelijk het helderheidshistogram van de afbeelding berekenen.

Schrijf Image via C++

#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));
}

Beeldbewerkingen op pixelniveau met behulp van C++ API

De open source-bibliotheek Boost.GIL heeft volledige ondersteuning geboden voor beeldbewerkingen op pixelniveau binnen hun eigen C++-toepassingen. De bibliotheek heeft een aantal handige bewerkingen opgenomen waarmee gebruikers pixelwaarden, pixelaanwijzers en pixelreferenties kunnen verwerken, zoals een pixel gekleurd maken, toegang krijgen tot een kanaal, de twee kanalen vergelijken, const vlakke aanwijzer construeren, grijze l-waarde converteren naar RGB , enzovoort.

Convert Color Space naar 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);
}

Beeldtransformatie binnen C++ Apps

De open source Boost.GIL-bibliotheek geeft softwareprogrammeurs de mogelijkheid om afbeeldingen te roteren met slechts een paar regels code. De Boost.GIL ondersteunt een verscheidenheid aan beeldtransformatiefuncties die elke op de as uitgelijnde rotatie kunnen uitvoeren, het beeld verticaal of horizontaal kunnen spiegelen, een rechthoekig subbeeld kunnen extraheren, kleurconversie kunnen toepassen, speciale rotaties van 90, 180 of 270 graden kunnen maken en zo Aan.

Vertaling:


  template 
  void y_gradient(const SrcView& src, const DstView& dst) {
      x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
  }
 Dutch