2012-07-27 38 views
1

继最后一个问题:read big image file as an array in python实现图像分割与蟒蛇发电机

由于我的笔记本电脑的内存限制,我想实现的Python生成的图像分割算法,该算法可以一次读取每个像素,而不是整个图像。我的笔记本电脑是Windows 7(64位操作系统),采用4G内存和Intel(R)Core(TM)i7-2860 QM CPU,我正在处理的图像超过2G。我想要应用的算法是分水岭分割:http://scikits-image.org/docs/dev/auto_examples/plot_watershed.html

我能找到的唯一类似示例是http://vkedco.blogspot.com/2012/04/rgb-to-gray-level-to-binary-python.html,但我需要的不仅仅是一次转换像素值。我需要考虑近像素之间的关系。我能怎么做?

任何想法或暗示对我?提前致谢!

+3

ISTM你可能还会减小图像大小(我的意思是降低像素数或调色板的缩放比例),以便它足够小以适应工作。如果分割足够稳健以确保可靠,那么无论如何都可以使用200M图像。 – DSM 2012-07-27 14:34:22

回答

4

由于RGB到graylevel转换操作纯粹是局部的,因此流式处理方法很简单;像素的位置是无关紧要的。流域是一项全球性运作。一个像素可以显着改变输出。你有几种选择:

  1. 写一个工作在瓦片上的流域的实现,并迭代许多通过图像。这听起来很难。
  2. 使用本地方法来分割(即阈值)。
  3. 获得更多RAM的计算机。 RAM很便宜,你可以将它大量地放到桌面系统中。