C ++图像处理库

时间:2010-06-06 00:54:10

标签: c++ image-processing

我正在寻找一个用于图像处理的C ++库。我需要图书馆来限制PPM照片(彩色照片)。我应该写自己的代码吗?你觉得怎么样?

7 个答案:

答案 0 :(得分:11)

Magick++可能有所帮助。它是ImageMagick的库版本。

答案 1 :(得分:10)

您可以使用Boost GIL库。它非常强大和多功能,可能真的适合你所有的需求(嗯,是的,它的提升:)

答案 2 :(得分:9)

以上所有选项都应该能够满足您的需求。

我想将OpenCV添加到列表中。它是一个快速的跨平台计算机视觉库,具有广泛的图像加载,保存和处理支持。它是用C语言编写的,但它有一个坚实的C ++接口,我过去曾使用它。

话虽如此:Reading / writing PPMs is straight-forward,所以如果你需要的只是阅读和门槛,你一定要考虑自己做。它可以归结为将PPM字节读入内存,通过平均RGB颜色通道进行灰度校正(请注意,RGB通道的平均值是一个非常简单的灰度方法;有more),然后进行阈值处理和写入

答案 3 :(得分:7)

Simd Library这是一个免费的开源图像处理库,专为C和C ++程序员设计。它为图像处理提供了许多有用的高性能算法,例如:像素格式转换,图像缩放和过滤,从图像中提取统计信息,运动检测,物体检测(HAAR和LBP分类器级联)和分类,神经网络。

使用不同的SIMD CPU扩展优化算法。特别是该库支持以下CPU扩展:用于x86 / x64的SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AVX2和AVX-512,用于PowerPC,NEON的VMX(Altivec)和VSX(Power7)对于ARM。

Simd库具有C API,还包含有用的C ++类和函数,以便于访问C API。该库支持动态和静态链接,32位和64位Windows和Linux,MSVS,G ++和Clang编译器,MSVS项目和CMake构建系统。

P.S。我参与了这个项目的开发。

答案 4 :(得分:4)

The CImg Library也是一个受欢迎的选择。它使用起来非常简单,重量轻,并且已经实现了许多基本和高级图像处理操作符。

答案 5 :(得分:3)

我想将VIPS添加到列表中。该库特别适用于具有许多CPU的机器。有关比较,请参阅基准here

答案 6 :(得分:2)

非常好的图书馆是GD2

这个库有多种语言绑定,包括C(当然与C ++兼容)。实际上任何C ++编译器(包括GCC和Visual C ++)都可以很容易地将GD构建为静态或动态库,也可以通过Internet获得预构建的二进制文件。 与Boost图像库不同,它允许从/向内存加载/保存图像,而不仅仅是硬盘驱动器。