用于并行图像处理的开源 C++ 库
支持通用 N 维图像容器、增强的图像处理算法集等的免费 C++ API。
Video++ 是一个强大的多线程和跨平台的 C++ 图像编辑 API,使软件开发人员能够在他们自己的 C++ 应用程序中处理图像和视频文件。该库非常易于处理,是利用 C++11/C++14 的新特性开发的。 Video++ 背后的主要思想是利用新的 C++ 标准从头开始重新设计图像处理框架。
视频++图书馆的一个重要特点是、平行图像处理内核的定义很容易、它比不优化版本快32倍。 图书馆包括一些重要的特点、如通用的N-维图像容器、强化的图像处理算法、填充色彩、更好的内存管理、使用。
图书馆为访问图像容器提供了一个有用的功能、该图像容器提供了访问像素缓冲区的机会和处理图像的另一个信息。 它还为openCV个图像提供互操作性、并支持对OpenCV个图像类型的显式转换。
视频++入门
请使用以下命令进行完整安装。 Video++ 仅包含标头,因此要访问所有必要的功能,您必须包含 vpp.h 标头。在安装 Video++ 之前,您还需要在您的系统上获得 Eigen3 和 Boost。
通过gg命令安装视频++
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++ 库进行并行图像处理
开放源码视频++库允许软件开发者用C++个命令定义处理平行图像的内核。 最好的是核心能比正常的运行速度快32倍 它同样将内核的执行扩展到所有可用的CPU核心、运行几个线程在几个核心上。 它支持填充边界价值、填充边界镜、设置对齐、访问图像像像素、在图像上应用过滤器等功能。
通过 C++ 进行图像添加
开放源码视频++库提供了完整的功能、用像素-智能过滤器添加图像。 它提供了一组通用对象和程序、允许快速写入简单过滤器的有效实现。 许多图像处理过滤器是一些简单的函数、它们填充了计算值、因此对不同像素的计算没有依赖性。
通过C++增加2D图像
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]]);
}
}