Image 我应该使用什么图像处理库
我一直在阅读和尝试一些图书馆,现在正在寻找最适合我们需要的资料。我将首先描述我们当前的设置和问题 我们有一个系统,需要从大的原始图像中调整和裁剪大量图像。我们每天在两台功能强大的服务器上处理50000多张图像。今天,我们使用来自WebSupergoo的ImageGlue,但我们一点也不喜欢它,它速度很慢,有时会挂起服务(这是另一个未回答的堆栈溢出问题)。我们有一个线程windows服务,它使用Microsoft ThreadPool在8核机器上尽可能多地调整大小 我试过一辆福特,它开得很好,装载速度更快,从来没有撞车过。但我有一些图像的质量问题。这是因为我使用了ofc的算法,所以可以进行调整。但是我想睁大我们的眼睛看看这是不是正确的方法 因此:Image 我应该使用什么图像处理库,image,image-processing,thread-safety,Image,Image Processing,Thread Safety,我一直在阅读和尝试一些图书馆,现在正在寻找最适合我们需要的资料。我将首先描述我们当前的设置和问题 我们有一个系统,需要从大的原始图像中调整和裁剪大量图像。我们每天在两台功能强大的服务器上处理50000多张图像。今天,我们使用来自WebSupergoo的ImageGlue,但我们一点也不喜欢它,它速度很慢,有时会挂起服务(这是另一个未回答的堆栈溢出问题)。我们有一个线程windows服务,它使用Microsoft ThreadPool在8核机器上尽可能多地调整大小 我试过一辆福特,它开得很好,装载
- 它需要是c#.net并在windows服务中运行。(因为我们不会仅更改图像处理服务的其余部分)
- 它需要很好地处理线程化环境
- 我们非常需要它的速度,因为今天它太慢了。但我们也希望有好的质量和小的文件大小,因为这些图像后来会显示在网页上,有大量的访问者,需要良好的质量
关于使用哪个库有什么意见或建议吗?我知道它说您仍然想使用C,但提供了一个替代方案 根据你正在做的工作的数量,操作图像的最快方法是完全在GPU上完成(这将卸载大部分像素工作)。你可以从管理C++中与CUDA进行交互操作,你可以从你的服务中调用它。或者使用DirectX曲面和渲染目标(可以使用抗锯齿和所有现成的高质量内容)
但是,在执行任何操作之前,请确保您的工作负载主要由三线性/双线性调整大小控制,而不是由图像的编码/解码控制。顺便说一句,您需要在每台服务器上至少安装一张快速nVidia视频卡来完成卸载(便宜的GTX 460就足够了)。谢谢您的反馈!这确实是一个有趣的想法,将我的旧directx编码一扫而光会很有趣。它最终可能会产生最快、也许是最好的结果,但实施这个解决方案需要花费太多的时间。以及升级服务器。用一个新的组件实现我的图像处理接口是非常省力的。我会记住这个解决方案,如果它仍然太慢,我们无法得到一个快速的解决方案与另一个库的好结果。