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

     2023-03-16     11

关键词:

【中文标题】快速跨平台 C/C++ 图像处理库【英文标题】:Fast Cross-Platform C/C++ Image Processing Libraries 【发布时间】:2010-10-22 05:37:44 【问题描述】:

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

到目前为止,我已经研究过

OpenCV GIL 作为 Boost 的一部分 恶魔 CImg

我的问题

我上面列出的性能如何 还有哪些其他库

非常感谢您的意见。

【问题讨论】:

恕我直言,这个问题不准确。您是否希望获得分析的库与库性能?不问更具体的问题几乎是不可能的。相反,要求比较您感兴趣的库中实现的特定算法的实现会更合理。 【参考方案1】:

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

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

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

【讨论】:

如果我们在photoshop中制作滤镜,那么我们可以在opencv中使用它的RGB值来制作相同的滤镜吗? 恐怕我对 Photoshop 的了解不够,无法回答这个问题。也许您可以将其作为问题发布?【参考方案2】:

imagemagick很受欢迎。

【讨论】:

【参考方案3】:

别忘了看看CxImage - 我已经在全球部署的图形密集型手机应用程序中专业地使用了它,它在其中表现完美并且功能如此丰富。一定要看看!

【讨论】:

这个库看起来很扎实,但开发似乎是 MIA。最后更新于 2008 年 2 月。 @TheUnknown:晚年标志:“版本 7.01,07 - Jan - 2011”【参考方案4】:

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

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

这个包的主要问题是价格(高得离谱),但如果您正在从事一个不需要部署运行时许可证(例如 SaaS)的项目,那么这就是您要走的路,如果你需要认真的图像处理和计算机视觉。

【讨论】:

【参考方案5】:

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

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

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

还有VTK和ITK,拥有海量的多种图像处理算法。

【讨论】:

VTK 和 ITK 是非常可靠的库,但是根据我的经验,我发现使用这些高度模板化的库有点费力。 800 页的手册起初也有点令人生畏,但其中包含的算法往往来自研究中心,因此通常是最先进的。我无法比较性能,因为我没有使用任何其他库。我发现它没问题。【参考方案8】:

我帮助维护libvips,这是一个免费的跨平台 C/C++ 科学图像处理库。它速度很快,并且在非常大的图像上效果很好。

我做了一个非常简单的benchmark:加载一个 5,000 x 5,000 像素的 RGB tif,从每个边缘裁剪 100 像素,缩小 10%,锐化,然后再次保存。至少在这个微不足道的测试中,vips 的速度是我尝试过的其他任何东西的两倍多。

【讨论】:

在您的库中,什么是 OpenCV 的 warpPerspective 的更快替代方案? vips_quadratic?要了解warpPerspective,请查看此处:imgur.com/a/yiF55,请参阅 logo_warped 图像。这就是它对从一组角到另一组角的转换矩阵(单应矩阵)所做的事情。谢谢。 没错,vips_quadratic() 可以做透视变形。我会给你一个示例程序。 哎呀,我认为vips_quadratic() 未完成且无法使用,无论如何供您使用,因此缺少文档。对不起。我将在需要整理的 TODO 中添加一条注释。【参考方案9】:

还有:

Framewave 基于AMD Performance Library,提供信号和图像处理功能 GraphicsMagick 多线程派生自 ImageMagick

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

我们使用Accusoft 有一段时间了,但出于非常特殊的原因,我们切换到了LeadTools,它仅适用于Windows。 Accusoft 比leadtools 有一个非常清晰和定义明确的界面。这两个库都非常健壮,并且都声称可以或多或少地读取所有现有文件类型。两者都提供响应迅速的支持。

【讨论】:

c++boost库分类总结

...然要手动写代码实现。Boost看介绍不错,也不知道能不能跨平台。过几天要上linux写c++,也不知道这东西能不能用。转自:https://blog.csdn.net/svap1/article/details/80496489按照实现的功能,Boost可为大致归入以下20个分类,在下面的分类中... 查看详情

带有原始音频记录和播放示例的跨平台 C/C++ 库

】带有原始音频记录和播放示例的跨平台C/C++库【英文标题】:Cross-platformC/C++librarieswithexamplesforrawaudiorecordandplayback【发布时间】:2012-11-2007:31:51【问题描述】:我正在开发一个记笔记实用程序,并希望添加一项以全双工异步模... 查看详情

matlab与c/c++混合编程之matlab调用opencv库函数

...包括VS,Qt等等。Matlab以其在矩阵运算方面独有的优势在图像处理领域如鱼得水,Matlab的图像处理工具箱IPT已经集成了常见的图像处理函数,现在很多研究论文的代码都是基于用Matlab实现的。由于C\\C++和Matlab在处理不同问题的时... 查看详情

matlab与c/c++混合编程之matlab调用opencv库函数

...包括VS,Qt等等。Matlab以其在矩阵运算方面独有的优势在图像处理领域如鱼得水,Matlab的图像处理工具箱IPT已经集成了常见的图像处理函数,现在很多研究论文的代码都是基于用Matlab实现的 查看详情

开源免费的c/c++网络库(c/c++socketslibrary)

...大型项目。开源、免费,不依赖第三方库,支持跨平台。http://www.cs.wustl.edu/~schmidt/ACE.html (2)AsioAsio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。开源、免费,支持跨平台。http://think 查看详情

C/C++ 中的跨平台通用文本处理

】C/C++中的跨平台通用文本处理【英文标题】:Cross-PlatformGenericTextProcessinginC/C++【发布时间】:2009-04-1600:42:46【问题描述】:目前以独立于平台的方式处理通用文本的最佳做法是什么?例如,在Windows上,有“A”和“W”版本的API... 查看详情

c++实现,支持跨平台(windows,android,ios),支持跨语言(c++,c#,java)的网络库

...之上做的一些优化与调整。具体的亮点如下:1,支持跨跨平台,包括主流的Windows,Android,IOS,Linux等等。2,跨语言,客户端支持C++,C#,Java。服务端目前只支持C++。3,数据包增加了加密及压缩功能,密码会动态随机修改,而 查看详情

不同平台的c/c++标准库(代码片段)

1.C/C++标准C/C++所涉及到的参与者,根据角色的不同,可以分为以下3类:C/C++标准起草者,主要在ISO标准组织(InternationalOrganizationforStandardization),他们负责对应C/C++标准相关的制定, 查看详情

具有许可许可的强大、快速的复杂多边形(带孔)三角剖分 C/C++ 库 [关闭]

】具有许可许可的强大、快速的复杂多边形(带孔)三角剖分C/C++库[关闭]【英文标题】:Robust,fastcomplexpolygon(withholes)triangulationc/c++librarywithpermissivelicense[closed]【发布时间】:2013-04-0904:56:42【问题描述】:我是开源游戏Bitfighter的... 查看详情

C/C++ HTTP 库,只处理逻辑?

】C/C++HTTP库,只处理逻辑?【英文标题】:C/C++HTTPlibrary,thathandlesonlythelogic?【发布时间】:2011-01-0502:22:28【问题描述】:我正在寻找一个用于C/C++的HTTP库,它只处理协议逻辑,而不是实际的传输机制。我遇到的图书馆倾向于使整... 查看详情

图像稳定库Objective-C/C/C++?

】图像稳定库Objective-C/C/C++?【英文标题】:ImagestabilizationlibraryObjective-C/C/C++?【发布时间】:2011-10-0708:04:42【问题描述】:有没有像样的图像稳定库(围绕光流的东西)可以给我一个3维变换矩阵来稳定?我只想稳定一个10帧的序... 查看详情

c/c++操作ini文件(sinpleini跨平台库)(代码片段)

....simpleini:这是C++的库,挺方便使用的,跨平台,开源,就两个.h文件和一个.c文件,且支持中文;所以最后我选择了simpleini这个库去学习使用!目录一、介绍1.ini介绍2.simpleini介绍二、下载三、... 查看详情

跨平台调试的c/c++语言项目(代码片段)

clibclibCAPI是一个可以跨平台调试的C语言静态库,动态库和调用程序的示例项目。示例项目由下面的命令行自动生成:$cdpytools/tools/$gen_project.py--project=clibAuthor:zhangDate:2021-06-3014:32:59Refer:https://blog.csdn.net/ubuntu64fan/a 查看详情

跨平台调试的c/c++语言项目(代码片段)

clibclibCAPI是一个可以跨平台调试的C语言静态库,动态库和调用程序的示例项目。示例项目由下面的命令行自动生成:$cdpytools/tools/$gen_project.py--project=clibAuthor:zhangDate:2021-06-3014:32:59Refer:https://blog.csdn.net/ubuntu64fan/a 查看详情

哪个库用于视频和音频录制? [关闭]

...并生成视频文件(avi、mpeg或任何其他格式)。我更喜欢跨平台解决方案(Windows、MAC和Linux)以及C/C++或Python中的东西。有任何建议和/或示例代码吗 查看详情

不同平台的c/c++标准库(代码片段)

1.C/C++标准C/C++所涉及到的参与者,根据角色的不同,可以分为以下3类:C/C++标准起草者,主要在ISO标准组织(InternationalOrganizationforStandardization),他们负责对应C/C++标准相关的制定,... 查看详情

不同平台的c/c++标准库(代码片段)

1.C/C++标准C/C++所涉及到的参与者,根据角色的不同,可以分为以下3类:C/C++标准起草者,主要在ISO标准组织(InternationalOrganizationforStandardization),他们负责对应C/C++标准相关的制定,... 查看详情

用于c/c++应用程序的开源pdf库?[关闭]

...答案,但它们主要与.Net有关。答案LibHaruHaru是一个免费的跨平台开源软件库,用于生成用ANSI-C编写的PDF。它既可以作为静态库(.a,.lib),也可以作为共享库(.so,.dll)。没有自己尝试,但也许它可以帮助你另一答案http://wxcode.... 查看详情