我想做一些关于计算机成像的基础知识的工作。我正在寻找一种方法来读取单像素的数据,对它们进行编程分析,并对其进行更改。最好的语言是什么(Python,c++,Java...)?最好的文件格式是什么?
我不想要任何超级花哨的软件/API。我在找最基本的东西。
发布于 2008-09-27 03:58:52
如果你需要速度(你可能总是想要图像处理的速度),你肯定必须使用原始像素数据。Java有一些真正的缺点,因为你不能直接访问内存,这使得像素访问比直接访问内存要慢得多。C++绝对是图像处理产品的首选语言。但是,例如,您也可以使用C#,因为它允许在特定区域使用不安全的代码。(看看bitmapdata类的scan0指针属性。)我已经成功地在图像处理应用程序中使用了C#,它们的速度肯定比java快得多。我不会使用任何脚本语言或java来达到这样的目的。
发布于 2008-09-27 04:36:00
使用、Python、等高级语言来处理大型、多维或复杂的像素信息数组是非常困难的。有一个名为PIL (the Python Imaging Library的库非常有用,它可以让你做一般的过滤和变换(改变亮度,柔化,去饱和度,裁剪等)以及操作原始像素数据。
到目前为止,它是我一直使用的easiest and simplest图像库,可以扩展它来做您感兴趣的任何事情(例如,用很少的代码编写edge detection)。
发布于 2012-10-30 00:11:08
我学过人工智能和计算机视觉,因此我非常了解这一领域使用的工具。
基本上:你可以使用任何你想要的东西,只要你知道它在幕后是如何工作的。
现在,根据您想要实现的目标,您可以使用:
被选为解决方案的答案是非常有偏见的,你应该小心这种陈旧的评论。
如今,硬件比湿件(人类)更便宜,因此,您应该使用能够更快地产生结果的语言,即使这是以几个CPU周期或内存空间为代价的。
此外,许多人倾向于认为,只要你用C/C++实现你的软件,你就是在制造速度的圣杯:这不是真的。首先,因为算法的复杂性比你正在使用的语言重要得多(一个糟糕的算法永远不会击败一个更好的算法,即使是用世界上最慢的语言实现的),其次,因为现在高级语言正在为你做大量的缓存和速度优化,这可以使你的程序运行得比C/C++更快。
当然,您总是可以在C/C++中完成上述所有操作,但是您愿意浪费多少时间来重新发明轮子呢?
https://stackoverflow.com/questions/142928
复制相似问题