Answers:
这不仅与编程语言有关,还与您正在使用的库有关。我可以想到以下几点:
MATLAB-图像处理功能还可以,但是要进行更高级的实时处理,您将需要一些底层的东西。此外,它不能提供很好的可移植性。
Mathematica-适用于原型设计和快速可视化,但这只是我的拙见。
OpenCV-我认为这是IP社区中最受欢迎的库。强大的功能( GPU计算,机器学习模块,GUI-您还需要什么?),快速且仍在开发中(因此非常小的bug很快就会被清除)。关于社区-很大!主要用于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管道硬件架构以利用任何效率提升)