python - 用python生成器实现图像分割

标签 python image-processing python-2.7

继最后一个问题:read big image file as an array in python

由于我笔记本电脑的内存限制,我想用 python 生成器实现图像分割算法,它可以一次读取每个像素,而不是整个图像。

我的笔记本电脑是 Window 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 ,但我需要的不仅仅是一次转换一个像素值。我需要考虑近像素之间的关系。我能怎么做?

对我有什么想法或提示吗?提前致谢!

最佳答案

由于 RGB 到灰度级的转换操作纯粹是本地的,流式处理方法是微不足道的;像素的位置无关紧要。 Watershed 是一项全局性的行动。一个像素可以显着改变输出。您有多种选择:

  1. 编写 Watershed 的实现,它适用于图 block 并在图像的许多遍上进行迭代。这对我来说听起来很难。
  2. 使用局部方法进行分割(即阈值化)。
  3. 买一台内存更大的电脑。 RAM 很便宜,您可以将大量内存放入桌面系统。

关于python - 用python生成器实现图像分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11689620/

相关文章:

python - 如何强制 python 中的数字采用 32 位而不是 64 位

python - Python 中的图像锐化错误

python - Pip 升级/更新功能

multithreading - selenium 线程可以安全地使用 Python 进行抓取吗?

python - 使用最小/最有效路径(Scipy distance.cdist)3D 浏览坐标?

python - 如何用 lxml 中的文本替换元素?

python - 如何从 <span> 锁定标签中抓取数据?

c++ - 实现图像稳定 opencv,c++

python - 当我将灰度图像转换为 NumPy 数组时,NumPy 数组存储什么?

python - 在 Pyglet 中快速获取图像的 alpha channel 数据