快速跨平台C / C ++图像处理库

什么是用于图像处理的一些跨平台和高性能图像库(resize和查找颜色/色调直方图)。 不需要gui。 这适用于C / C ++。

到目前为止,我一直在寻找

  • OpenCV的
  • GIL是Boost的一部分
  • 魔鬼
  • CIMG

我的问题

  • 我上面列出的那些表现如何
  • 还有什么其他的图书馆

您的意见非常感谢。

OpenCV具有相当不错的性能。 对大多数情况来说应该足够了。

为了提高性能,您还可以将OpenCV与英特尔IPP结合使用,而英特尔IPP是非免费的商业产品。 如果OpenCV检测到安装了IPP,它将尽可能使用它。

作为第三种选择,您可以直接使用IPP。 IPP以高性能(在英特尔架构上)设计为目标。 它经过优化,可以使用intel SIMD指令。

imagemagick很受欢迎。

不要忘记看看CxImage – 我在全球部署的图形密集型手机应用程序中专业地使用它,它在那里表现完美且function如此丰富。 看看吧!

有一个简单而免费的开源跨平台图像处理库Simd 。 如下所述:

它为图像处理提供了许多有用的高性能算法,例如:像素格式转换,图像缩放和过滤,从图像中提取统计信息,运动检测。

使用不同的SIMD CPU扩展优化算法:用于x86 / x64的SSE,SSE2,SSSE3,SSE4.1,SSE4.2,AVX,AVX2和AVX-512,用于PowerPC的VMX(Altivec)和VSX(Power7), NEON for ARM。

你可能想看一下IM 。 它建立在多个平台上,并支持(模块化)图像文件格式,各种图像表示以及各种变换和运算符。 还提供了一个GUI工具IMLab ,用于演示基于IM库的图像处理操作符。

还有VTK和ITK ,具有大量的流形图像处理算法。

我认为我在function和性能方面没有比MVTec的 HALCON看到更好的东西。 它提供了开箱即用的各种计算机视觉和图像处理算法以及大量现实生活中的例子。 该库使用multithreading,就像算法可能允许的那样,以及GPU可用时。 它非常跨平台,提供了一个出色的IDE,允许您将原型代码(算法)导出为多种语言,包括C,C ++,C#等。

该库的最佳function之一是它们如何处理区域对象。 它对于存储和掩模处理来说都非常智能和高效。 不幸的是,OpenCV有很多值得学习的地方。

这个软件包的主要问题是价格(愚蠢的高),但是如果你正在开发一个你不需要部署运行时许可证的项目(例如SaaS),那么这就是你要走的路,如果你需要认真的话,不要再看了图像处理和计算机视觉。

还有:

  • Framewave基于AMD性能库 ,提供信号和图像处理function
  • 来自ImageMagick的 GraphicsMagickmultithreading衍生产品

我维护vips ,一个免费的,跨平台的C / C ++科学图像处理库。 它速度快,适用于非常大的图像。

我做了一个非常简单的基准测试 :加载一个5,000 x 5,000像素的RGB tif,每个边缘裁掉100个像素,缩小10%,锐化并再次保存。 至少在这个微不足道的测试中,vips比我尝试的任何其他东西快三倍以上。

我们使用Accusoft已有一段时间了,但由于非常具体的原因,我们改用了LeadTools ,它仅适用于Windows。 Accusoft的界面非常清晰,定义明确,比leadtools更明确。 这两个库都非常强大,并声称可以读取或多或少的所有现有文件类型。 两者都有非常敏感的支持。

ExactImage是一个快速的C ++图像处理库。 与许多其他库框架不同,它允许在本地操作多个颜色空间和位深度,从而导致低内存和计算要求。