C++ 图像处理常用库


一、 OpenCL (Open Computing Language)

parallel programming of diverse accelerators (including multi-core CPUs, GPUs, DSPs, FPGAs and dedicated hardware such as inferencing engines.

进行并行计算的low-levelAPI,可直接控制硬件。

在Deeplearning中,对应卷积等科学计算,硬件为GPU和DL Accelerators.

参考:https://www.khronos.org/opencl/

二、 OpenGL

使用GPU进行图形渲染,用于生成2D、3D图像。

OpenGL 渲染管线流程为:顶点数据 -> 顶点着色器 -> 图元装配 -> 几何着色器 -> 光栅化 -> 片段着色器 -> 逐片段处理 -> 帧缓冲

GPU上与渲染处理对应的GPU硬件包括:

  • 顶点处理: Vertex Shader(顶点着色器)
  • 纹理帖图:TMU(Texture mapping unit)
  • 光栅化引擎ROP

参考:https://www.jianshu.com/p/92208a75283d

 

三、 OpenGL ES

OpenGL for Embedded Systems,用于嵌入式的图形渲染API,是OpenGL的子集,仅保留了高效的函数。

OpenGL® ES is a royalty-free, cross-platform API for rendering advanced 2D and 3D graphics on embedded and mobile systems - including consoles, phones, appliances and vehicles. It consists of a well-defined subset of desktop OpenGL suitable for low-power devices, and provides a flexible and powerful interface between software and graphics acceleration hardware.

参考: https://www.jianshu.com/p/b92b39df57e5

 

四、 GLFW

OpenGL / OpenGL ES 是跨平台的,它只专注渲染; 其他内容在每个平台上都要有它的具体实现,比如上下文环境和窗口的管理就交由各个设备自己来完成。

GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.

五、 EGL

EGL™ is an interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system.

EGL 是 OpenGL ES 渲染 API 和本地窗口系统(native platform window system)之间的一个中间接口层。

 

六、Eigen: 矩阵运算

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

https://eigen.tuxfamily.org/dox/group__QuickRefPage.html

 

LodePNG:

PNG encoder and decoder in C and C++, without dependencies
例如把PNG图像解码为RGBA/RGB,或者将PNG图像解码为RGBA/RGB像素数据;
Convert PNG to BMP或Convert BMP to PNG。

 

滤波Filter(low-pass, high-pass and band-pass FIR filter):

https://cardinalpeak.com/blog/a-c-class-to-implement-low-pass-high-pass-and-band-pass-filters/

 

绘制线图Plot

matplotlib-cpp works by wrapping the popular python plotting library matplotlib.

https://github.com/lava/matplotlib-cpp

你可能感兴趣的:(C++)