Библиотека C++ с открытым исходным кодом для параллельной обработки изображений 

Бесплатный API C++, поддерживающий универсальные N-мерные контейнеры изображений, расширенный набор алгоритмов обработки изображений и т. д.

Video++ — это мощный многопоточный и кроссплатформенный API для редактирования изображений C++, который позволяет разработчикам программного обеспечения работать с изображениями и видеофайлами в своих собственных приложениях C++. Библиотека очень проста в обращении и разработана с использованием новых возможностей C++11/C++14. Основная идея Video++ состоит в том, чтобы перепроектировать с нуля структуру обработки изображений, используя преимущества нового стандарта C++.

Одной из замечательных особенностей библиотеки Video++ является простое определение параллельных ядер обработки изображений, которые работают в 32 раза быстрее, чем неоптимизированная версия naïve. Библиотека включает в себя несколько важных функций, таких как общие N-мерные контейнеры изображений, расширенный набор алгоритмов обработки изображений, наполнить цвет, лучшее управление памятью, заполнить границу, использование 3D-подобразов и многое другое.

Библиотека предоставляет полезную функцию для доступа к контейнерам изображений, которые предлагают доступ к буферу пикселей и к другой информации, полезной для обработки изображения. Он также обеспечивает интероперабельность до openCV и поддерживает явные преобразования в OpenCV типов изображений и из них.

Previous Next

Начало работы с Видео++

Пожалуйста, используйте следующую команду для полной установки. Video++ содержит только заголовок, поэтому для доступа ко всем необходимым функциям необходимо включить заголовок vpp.h. Вам также необходимо установить Eigen3 и Boost в вашей системе перед установкой Video++.

Установка видео++ через команду git

 git clone https://github.com/matt-42/vpp.git
cd vpp
./install.sh your_install_prefix # Install iod and vpp in a given prefix

Параллельная обработка изображений с помощью библиотеки C++

Библиотека с открытым исходным кодом Video++ позволяет разработчикам программного обеспечения определять ядра для обработки параллельных изображений с использованием C++ команд. Самое главное, что ядра могут работать в 32 раза быстрее, чем обычные. Он также распространил выполнение ядер по всем доступным ядрам процессоров, работающих на нескольких резьбах. Он поддерживает такие функции, как заполнение границ значением, заполнение пограничного зеркала, установка выравнивания, доступ к пикселям изображения, применение фильтров на изображениях и так далее.

Добавление изображения через C++

Библиотека с открытым исходным кодом Video++ предоставляет полную функциональность для добавления изображений с помощью пиксельного фильтра. Он предлагает набор общих объектов и рутин, которые позволяют быстро писать эффективные реализации простых фильтров. Многие фильтры обработки изображений являются простыми функциями, которые заполняют пиксели с вычисленными значениями, таким образом, не имеют зависимостей между вычислениями относительно различных пикселей.

Добавить 2D-изображение через C++

int main()
{
  using namespace vpp;
  image2d img1(make_box2d(100, 200), _border = 3);
  image2d img2({100, 200});
  assert(&img1(0,0) == &img1[0][0]);
  assert(&img1(0,0) == &(*img1.begin()));
  assert(img1.domain() == img2.domain());
  assert(img1.nrows() == 100);
  assert(img1.ncols() == 200);
  {
    image2d img(make_box2d(5, 5), _border = 1);
    assert(&img(0,0) == img.address_of(vint2(0,0)));
    assert(&img(4,0) == img.address_of(vint2(4,0)));
    auto s1 = img.subimage(img.domain());
    assert(&s1(0,0) == s1.address_of(vint2(0,0)));
    for (auto p : img.domain())
      assert(img(p) == img[p[0]][p[1]]);
    for (auto p : img.domain())
      assert(img(p) == s1[p[0]][p[1]]);
  }
}
 Русский