1. produkty
  2.   obraz
  3.   C++
  4.   Boost.GIL

Boost.GIL

 
 

Open Source C++ Obecná knihovna obrázků

C++ API, které abstrahuje obrazové reprezentace z algoritmů a podporuje práci s jednoduchými i složitými obrázky. Vygenerujte histogram, vypočítejte přechody obrazu, konvoluci a převzorkování a tak dále.

Obrázky jsou základní součástí mnoha projektů souvisejících s grafikou, digitálním videem, počítačovým viděním a zpracováním obrazu. Navíc mohou být obrázky reprezentovány mnoha různými způsoby (barevný prostor, bitová hloubka, pořadí kanálů, politika zarovnání atd.). Takže práce na novém projektu souvisejícím s image, který může být obecný i efektivní, je velmi náročná. Boost Generic Image Library (GIL) je knihovna s otevřeným zdrojovým kódem, která dává softwarovým vývojářům možnost pracovat s jednoduchými a komplexními obrázky v rámci jejich vlastních aplikací C++.

Skvělá věc na knihovně Boost.GIL je, že abstrahuje obrazové reprezentace od algoritmů a umožňuje psát kód, který může pracovat na různých obrázcích s výkonem srovnatelným s ručním psaním pro konkrétní typ obrázku. Usnadňuje tedy vývojářům práci tím, že jim umožňuje napsat kód jednou a nechat jej fungovat pro jakýkoli typ obrázku.

Knihovna Boost.GIL je navržena jako kompliment STL a Boost. Dalším skvělým aspektem knihovny je rychlost a flexibilita. Rychlost byla klíčovou součástí návrhu knihovny. Můžete snadno definovat jakýkoli parametr obrazu za běhu za velmi nízké náklady na výkon ve srovnání s mnoha jinými knihovnami. Poskytuje podporu pro několik důležitých funkcí, jako jsou pixely nezarovnané podle bajtů, výpočet přechodů obrazu, integrace Boosts, přiřazení kanálu k pixelu ve stupních šedi, konvoluce a převzorkování atd.

Previous Next

Začínáme s Boost.GIL

Nejjednodušší způsob instalace Boost.GIL je pomocí GitHubu. Pro bezproblémovou instalaci použijte prosím následující příkaz

Nainstalujte Boost.GILvia GitHub.

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

Čtení a psaní obrázků

Histogram je grafické znázornění rozložení tónů v digitálním obrazu. V kontextu zpracování obrazu se histogram obrazu obvykle týká histogramu hodnot intenzity pixelů. Knihovna Boost.GIL umožňuje vývojářům softwaru generovat histogram uvnitř jejich vlastní aplikace pomocí kódu C++. Lze jej vygenerovat spočítáním počtu hodnot pixelů, které spadají do každé přihrádky. Můžete také snadno vypočítat histogram jasu snímku.

Zápis obrázku přes 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));
}

Obrazové operace na úrovni pixelů pomocí C++ API

Knihovna s otevřeným zdrojovým kódem Boost.GIL poskytla kompletní podporu pro operace s obrázky na úrovni pixelů v jejich vlastních aplikacích C++. Knihovna obsahuje některé užitečné operace, které uživatelům umožňují zpracovávat hodnoty pixelů, ukazatele pixelů a odkazy na pixely, jako je například obarvení pixelu, přístup ke kanálu, porovnání dvou kanálů, sestavení konstantního planárního ukazatele, převod šedé l-hodnoty na RGB. , a tak dále.

Převeďte barevný prostor na stupně šedi pomocí 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);
}

Transformace obrazu v aplikacích C++

Open source knihovna Boost.GIL dává softwarovým programátorům možnost otáčet obrázky pomocí pouhých několika řádků kódu. Boost.GIL podporuje řadu funkcí transformace obrazu, které mohou provádět libovolné otočení zarovnané osou, převrátit obraz svisle nebo vodorovně, extrahovat obdélníkový dílčí obraz, použít převod barev, speciální otočení o 90, 180 nebo 270 stupňů atd. na.

Transformace obrazu přes C++ API


  template 
  void y_gradient(const SrcView& src, const DstView& dst) {
      x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
  }
 Čeština