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

时间:2009-04-28 05:42:36

标签: c++ c image-processing cross-platform performance

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

到目前为止,我已经查看了

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

我的问题

  • 我上面列出的那些表现如何
  • 其他一些库

您的意见非常感谢。

11 个答案:

答案 0 :(得分:12)

OpenCV表现相当不错。对大多数情况来说应该足够了。

为了提高性能,您还可以将OpenCV与Intel IPP一起使用,但这是一种非免费的商业产品。如果OpenCV检测到安装了IPP,它将尽可能使用它。

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

答案 1 :(得分:10)

imagemagick非常受欢迎。

答案 2 :(得分:4)

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

答案 3 :(得分:3)

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

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

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

答案 4 :(得分:2)

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

答案 5 :(得分:2)

还有VTKITK,以及大量的多种图像处理算法。

答案 6 :(得分:2)

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

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

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

答案 7 :(得分:1)

还有:

答案 8 :(得分:1)

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

答案 9 :(得分:1)

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

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

答案 10 :(得分:0)

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