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