图像处理编码

信息处理 图像处理 matlab Python
2022-01-01 08:11:03

我想知道哪种语言是图像处理的最佳语言?我知道 MATLAB 有一个很好的库和用户社区。我还没有检查过,它也适用于python。

什么是最有效的语言?

3个回答

它不仅与编程语言有关,还与您正在使用的库有关。我可以想到以下几点:

MATLAB - 图像处理功能相当不错,但对于更高级和实时的处理,您需要一些低级的东西。此外,它不提供很好的便携性。

Mathematica - 适用于原型设计和快速可视化,但这只是我的拙见。

OpenCV - 我认为这是 IP 社区中最受欢迎的库。强大的功能( GPU 计算、机器学习模块、GUI - 你还需要什么?)、速度快且仍在开发中(所以小错误很快就会被删除)。关于社区 - 它很大!主要用于 C/C++ 编程,也适用于 Python(可能适合你)。

JAI - Java Advanced Imaging - 只有你喜欢 Java。就个人而言,我不喜欢它。

ImageMagick - 您可以将它与许多编程语言一起使用,检查API

CxImage - 如果您想创建比 MS Paint 更好的东西并具有 Photoshop 的某些功能,那就太好了。

CImg - 显然与 C++ 一起使用,但 OpenCV 仍然更好。

PIL - 具有很多功能的 Python 特定库。如果你喜欢它,那么你可以仔细看看。

SimpleCV - 基本上它是带有一些调整的 OpenCV python 绑定。非常易于使用且非常高效。

scikit-image - 也是 Python 库,但在我看来比 SimpleCV 差(尽管我的朋友不同意)。一个优点是它们包含 DAISY 特征提取器 - 如果您需要密集特征,这非常有用。

GIL - Boost的一部分,但功能不如 OpenCV。尽管如果您喜欢并使用 Boost,那么对于一些基本功能应该没问题。

ResIL - DevIL项目的延续。一个主要优势是可以处理多种文件格式,包括一些游戏文件。

PINK - 最初用 C++ 编写。我最近尝试了一下,使用起来非常愉快。与 Python 的良好集成和嵌入式 C 的快速集成。除此之外,它们确实有很多不错的算法。

显然,还有更多的图像处理库,但这些都是我接触过的。所以如果你想从一些东西开始,那么选择 OpenCV(最好是 C++ 框架)——你不会后悔的!另一方面,如果您的编程技能不强,那么您可能需要考虑使用基于 Python 的库 - 非常容易学习和设置。

MATLAB 是学习图像处理的最佳语言。(这是我的看法)

它易于学习,独立于硬件,比任何编译语言都更灵活,可能比脚本语言更有效(由于其固有的 dll 针对机器级别的信号处理进行了优化),它具有良好的学术和工程支持。

C/C++ 是创建独立的图像处理应用程序的最佳语言。在您的 IDE 套件下,您可以生成最有效的本机代码。C++ 的 IDE 提供了更好的机器级调试功能。

一些脚本语言也被使用。它们确实灵活、可移植,甚至相当高效,但是在低级别调试可能并不容易。

此外,CUDA、OpenCL 等新的 GPU 处理能力也大大提高了计算吞吐量。(但是它们更难学习,因为您应该了解底层 GPU 管道硬件架构以利用任何效率提升)

如果您想推出自己的算法或代码,请包括 OpenCL,因为许多图像处理内核是“令人尴尬的并行”。

或者,在 Big Iron 上,Fortran 在数值向量性能上仍然胜过大多数其他语言。