Boost.GIL

 
 

C++ Generic Image Library с отворен код

C++ API, който абстрахира представянето на изображения от алгоритми и поддържа работа с прости и сложни изображения. Генериране на хистограма, изчисляване на градиенти на изображението, навиване и повторно вземане на проби и т.н.

Изображенията са основна част от много проекти, свързани с графики, цифрово видео, компютърно зрение и обработка на изображения. Освен това изображенията могат да бъдат представени по много различни начини (цветово пространство, битова дълбочина, ред на каналите, политика за подравняване и т.н.). Така че работата по нов проект, свързан с изображения, който може да бъде общ, както и ефективен, е много предизвикателна. Boost Generic Image Library (GIL) е библиотека с отворен код, която дава възможност на разработчиците на софтуер да работят с прости и сложни изображения в техните собствени C++ приложения.

Страхотното при библиотеката Boost.GIL е, че тя абстрахира представянето на изображения от алгоритмите и позволява писането на код, който може да работи върху различни изображения с производителност, сравнима с ръкописното писане за определен тип изображение. Така че прави работата на разработчиците лесна, като им позволява да напишат код веднъж и той да работи за всеки тип изображение.

Библиотеката Boost.GIL е проектирана като комплимент за STL и Boost. Друг страхотен аспект на библиотеката е бързината и гъвкавостта. Скоростта е ключова част от дизайна на библиотеката. Можете лесно да дефинирате всеки параметър на изображението по време на изпълнение за много ниски разходи за производителност в сравнение с много други библиотеки. Той осигурява поддръжка за няколко важни функции, като пиксели без подравняване на байтове, изчисляване на градиенти на изображението, интеграция на Boosts, присвояване на канал на пиксел със скала на сивото, конволюция и повторно вземане на проби и т.н.

Previous Next

Първи стъпки с Boost.GIL

Най-лесният начин да инсталирате Boost.GIL е като използвате GitHub. Моля, използвайте следната команда за гладка инсталация

Инсталирайте Boost.GIL чрез GitHub.

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

Четене и писане на изображения

Хистограмата е графично представяне на тоналното разпределение в цифрово изображение. В контекста на обработката на изображения хистограмата на изображение обикновено се отнася до хистограма на стойностите на интензитета на пикселите. Библиотеката Boost.GIL позволява на разработчиците на софтуер да генерират хистограма в собственото си приложение, използвайки C++ код. Може да се генерира чрез преброяване на броя пикселни стойности, които попадат във всеки контейнер. Можете също така лесно да изчислите хистограмата на осветеността на изображението.

Писане на изображение чрез 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));
}

Операции с изображения на ниво пиксел с помощта на C++ API

Библиотеката с отворен код Boost.GIL предостави пълна поддръжка за операции с изображения на ниво пиксел в техните собствени C++ приложения. Библиотеката включва някои полезни операции, които позволяват на потребителите да обработват пикселни стойности, пикселни указатели и пикселни препратки, като например оцветяване на пиксел, достъп до канал, сравняване на двата канала, конструиране на константен планарен указател, преобразуване на сива l-стойност в RGB , и така нататък.

Преобразувайте цветовото пространство в скала на сивото чрез 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);
}

Трансформация на изображения в C++ приложения

Библиотеката Boost.GIL с отворен код дава на софтуерните програмисти възможността да завъртат изображения само с няколко реда код. Boost.GIL поддържа различни функции за преобразуване на изображения, които могат да извършват всяко завъртане по оста, обръщане на изображението вертикално или хоризонтално, извличане на правоъгълно подизображение, прилагане на цветово преобразуване, специални завъртания на 90, 180 или 270 градуса и т.н. На.

Трансформация на изображения чрез C++ API


  template 
  void y_gradient(const SrcView& src, const DstView& dst) {
      x_gradient(rotated90ccw_view(src), rotated90ccw_view(dst));
  }
 Български