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

时间:2022-09-26 12:05:52

What are some cross platform and high performance image libraries for image processing (resizing and finding the color/hue histograms). No gui needed. This is for C/C++.

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

So far I have looked in to

到目前为止,我已经看过了。

  • OpenCV
  • OpenCV
  • GIL as part of Boost
  • GIL是Boost的一部分
  • DevIL
  • 魔鬼
  • CImg
  • CImg

My questions

我的问题

  • How's the performance of the ones I have listed above
  • 我上面列出的那些项目的表现如何?
  • What are some other libraries
  • 还有哪些图书馆

Your input much appreciated.

感谢你的输入。

11 个解决方案

#1


12  

OpenCV has quite good performance. It should be sufficient for most cases.

OpenCV有很好的性能。在大多数情况下它应该是足够的。

To improve performance, you can also use OpenCV together with Intel IPP, which is however a non-free commercial product. If OpenCV detects that IPP is installed it will use it where possible.

为了提高性能,您还可以将OpenCV与Intel IPP一起使用,而Intel IPP是一个非免费的商业产品。如果OpenCV检测到IPP被安装,它将在可能的地方使用它。

As a third option you can use IPP directly. IPP was designed with high performance (on Intel architectures) as a goal. It is optimized to use the intel SIMD instructions.

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

#2


10  

imagemagick is quite popular.

imagemagick是相当受欢迎。

#3


4  

Don't forget to look at CxImage - I've used it professionally in globally deployed graphics intensive mobile phone applications, where it performed perfectly and it's so full of features. Do check it out!

别忘了看看CxImage——我在全球部署的图形密集型移动电话应用程序中使用过它,它运行得非常好,功能非常丰富。检查出来!

#4


3  

There is a simple and free open source cross-platform image processing library Simd. As follows from its description:

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

It provides many useful high performance algorithms for image processing such as: pixel format conversion, image scaling and filtration, extraction of statistic information from images, motion detection.

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

The algorithms are optimized with using of different SIMD CPU extensions: SSE, SSE2, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX-512 for x86/x64, VMX(Altivec) and VSX(Power7) for PowerPC, NEON for ARM.

采用SSE、SSE2、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX-512对x86/x64、VMX(Altivec)、VSX(PowerPC)、NEON对算法进行优化。

#5


2  

You might want to look at IM. It builds on several platforms, and has support for (modular) image file formats, a variety of image representations, and a wide array of transformations and operators. A GUI tool, IMLab, for demonstrating image processing operators based on the IM library is also available.

你可能想看看IM。它构建在几个平台上,支持(模块化)图像文件格式、各种图像表示形式以及大量的转换和操作符。还有一个GUI工具,IMLab,用于演示基于IM库的图像处理操作符。

#6


2  

There are also VTK and ITK, with a huge amount of manifold image processing algorithms.

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

#7


2  

I don't think I've seen anything better in features and performance than HALCON from MVTec. It provides all sort computer vision and image processing algorithms out-of-the-box and plenty of real life examples. The library uses multithreading as much as algorithms could possibly allow and GPU when available. It's very cross-platform and provides a fantastic IDE that will allow you to export your prototype code (algorithm) to many languages including C, C++, C# and more.

我认为我没有看到比MVTec的HALCON更好的特性和性能。它提供了所有种类的计算机视觉和图像处理算法开箱即用和大量的现实生活例子。该库在可用时尽可能多地使用算法和GPU。它是非常跨平台的,并且提供了一个很棒的IDE,允许您将原型代码(算法)导出到许多语言,包括C、c++、c#等等。

One of the best features of this library is how they treat region objects. It is just incredibly smart and efficient both for storage and mask processing. Unfortunately OpenCV has a lot to learn from it.

这个库最好的特性之一是它们如何处理区域对象。它对于存储和掩码处理都非常智能和高效。不幸的是,OpenCV有很多东西要学习。

The main problem with this package is the price (stupidly high) but if you are working on a project where you don't need to deploy runtime licenses (e.g. SaaS) then this is the way to go, look no further if you require serious image processing and computer vision.

这个包的主要问题是价格(高得愚蠢),但是如果您正在开发一个不需要部署运行时许可证(例如SaaS)的项目,那么这就是解决问题的方法,如果您需要进行严格的图像处理和计算机视觉处理,请不要再看了。

#8


1  

There are also:

还有:

  • Framewave based on AMD Performance Library which provides signal and image processing features
  • 基于AMD性能库的帧波,提供信号和图像处理特性
  • GraphicsMagick multi-threaded derivative from ImageMagick
  • GraphicsMagick多线程派生自ImageMagick

#9


1  

I maintain vips, a free, cross-platform C/C++ scientific image-processing library. It is fast and works well on very large images.

我维护vip,一个免费的,跨平台的C/ c++科学图像处理库。它速度快,在非常大的图像上工作得很好。

I did a very simple benchmark: load a 5,000 x 5,000 pixel RGB tif, crop 100 pixels off every edge, shrink 10%, sharpen, and save again. On this trivial test at least, vips is more than three times faster than anything else I've tried.

我做了一个非常简单的基准测试:加载5000 x 5000像素的RGB tif,每条边裁掉100个像素,收缩10%,锐化,然后再次保存。至少在这个琐碎的测试中,vip的速度是我尝试过的任何测试的三倍以上。

#10


0  

We used Accusoft for quite a while, but for very specific reasons we switched to LeadTools, which exists for windows only. Accusoft has a very clear and much more well defined interface than leadtools. Both libraries are very robust and both claim to read more or less all existing file types. Both also have quite responsive support.

我们使用了一段时间的指责,但出于非常特殊的原因,我们改用了只针对windows的LeadTools。责权有一个非常清晰和更明确的接口比领导工具。这两个库都非常健壮,并且都声称可以读取或多或少所有现有的文件类型。这两家公司都得到了相当积极的支持。

#11


0  

ExactImage is a fast C++ image processing library. Unlike many other library frameworks it allows operation in several color spaces and bit depths natively, resulting in low memory and computational requirements.

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

#1


12  

OpenCV has quite good performance. It should be sufficient for most cases.

OpenCV有很好的性能。在大多数情况下它应该是足够的。

To improve performance, you can also use OpenCV together with Intel IPP, which is however a non-free commercial product. If OpenCV detects that IPP is installed it will use it where possible.

为了提高性能,您还可以将OpenCV与Intel IPP一起使用,而Intel IPP是一个非免费的商业产品。如果OpenCV检测到IPP被安装,它将在可能的地方使用它。

As a third option you can use IPP directly. IPP was designed with high performance (on Intel architectures) as a goal. It is optimized to use the intel SIMD instructions.

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

#2


10  

imagemagick is quite popular.

imagemagick是相当受欢迎。

#3


4  

Don't forget to look at CxImage - I've used it professionally in globally deployed graphics intensive mobile phone applications, where it performed perfectly and it's so full of features. Do check it out!

别忘了看看CxImage——我在全球部署的图形密集型移动电话应用程序中使用过它,它运行得非常好,功能非常丰富。检查出来!

#4


3  

There is a simple and free open source cross-platform image processing library Simd. As follows from its description:

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

It provides many useful high performance algorithms for image processing such as: pixel format conversion, image scaling and filtration, extraction of statistic information from images, motion detection.

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

The algorithms are optimized with using of different SIMD CPU extensions: SSE, SSE2, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX-512 for x86/x64, VMX(Altivec) and VSX(Power7) for PowerPC, NEON for ARM.

采用SSE、SSE2、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX-512对x86/x64、VMX(Altivec)、VSX(PowerPC)、NEON对算法进行优化。

#5


2  

You might want to look at IM. It builds on several platforms, and has support for (modular) image file formats, a variety of image representations, and a wide array of transformations and operators. A GUI tool, IMLab, for demonstrating image processing operators based on the IM library is also available.

你可能想看看IM。它构建在几个平台上,支持(模块化)图像文件格式、各种图像表示形式以及大量的转换和操作符。还有一个GUI工具,IMLab,用于演示基于IM库的图像处理操作符。

#6


2  

There are also VTK and ITK, with a huge amount of manifold image processing algorithms.

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

#7


2  

I don't think I've seen anything better in features and performance than HALCON from MVTec. It provides all sort computer vision and image processing algorithms out-of-the-box and plenty of real life examples. The library uses multithreading as much as algorithms could possibly allow and GPU when available. It's very cross-platform and provides a fantastic IDE that will allow you to export your prototype code (algorithm) to many languages including C, C++, C# and more.

我认为我没有看到比MVTec的HALCON更好的特性和性能。它提供了所有种类的计算机视觉和图像处理算法开箱即用和大量的现实生活例子。该库在可用时尽可能多地使用算法和GPU。它是非常跨平台的,并且提供了一个很棒的IDE,允许您将原型代码(算法)导出到许多语言,包括C、c++、c#等等。

One of the best features of this library is how they treat region objects. It is just incredibly smart and efficient both for storage and mask processing. Unfortunately OpenCV has a lot to learn from it.

这个库最好的特性之一是它们如何处理区域对象。它对于存储和掩码处理都非常智能和高效。不幸的是,OpenCV有很多东西要学习。

The main problem with this package is the price (stupidly high) but if you are working on a project where you don't need to deploy runtime licenses (e.g. SaaS) then this is the way to go, look no further if you require serious image processing and computer vision.

这个包的主要问题是价格(高得愚蠢),但是如果您正在开发一个不需要部署运行时许可证(例如SaaS)的项目,那么这就是解决问题的方法,如果您需要进行严格的图像处理和计算机视觉处理,请不要再看了。

#8


1  

There are also:

还有:

  • Framewave based on AMD Performance Library which provides signal and image processing features
  • 基于AMD性能库的帧波,提供信号和图像处理特性
  • GraphicsMagick multi-threaded derivative from ImageMagick
  • GraphicsMagick多线程派生自ImageMagick

#9


1  

I maintain vips, a free, cross-platform C/C++ scientific image-processing library. It is fast and works well on very large images.

我维护vip,一个免费的,跨平台的C/ c++科学图像处理库。它速度快,在非常大的图像上工作得很好。

I did a very simple benchmark: load a 5,000 x 5,000 pixel RGB tif, crop 100 pixels off every edge, shrink 10%, sharpen, and save again. On this trivial test at least, vips is more than three times faster than anything else I've tried.

我做了一个非常简单的基准测试:加载5000 x 5000像素的RGB tif,每条边裁掉100个像素,收缩10%,锐化,然后再次保存。至少在这个琐碎的测试中,vip的速度是我尝试过的任何测试的三倍以上。

#10


0  

We used Accusoft for quite a while, but for very specific reasons we switched to LeadTools, which exists for windows only. Accusoft has a very clear and much more well defined interface than leadtools. Both libraries are very robust and both claim to read more or less all existing file types. Both also have quite responsive support.

我们使用了一段时间的指责,但出于非常特殊的原因,我们改用了只针对windows的LeadTools。责权有一个非常清晰和更明确的接口比领导工具。这两个库都非常健壮,并且都声称可以读取或多或少所有现有的文件类型。这两家公司都得到了相当积极的支持。

#11


0  

ExactImage is a fast C++ image processing library. Unlike many other library frameworks it allows operation in several color spaces and bit depths natively, resulting in low memory and computational requirements.

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