使用SCI-KIT图像包中的二进制打开操作进行颗粒测定法



我在使用Scikit-image软件包中使用打开操作时会出现记忆错误(它使我的RAM饱和(。对于3-D结构元件,该元素是半径16或更大的球/球发生的。我正在尝试使用颗粒测量法来测量图像(3D数组(中对象的尺寸分布,因此我需要增加半径的结构元素。内存需求也呈指数增长,我找不到解决方面的方法。是否有一个简单的解决方案解决此问题,以便我可以使用更大的半径的结构元素?图像大小为200x200x200。tia

Traceback (most recent call last):
  File "R3.py", line 124, in <module>
    output_image = skimage.morphology.binary_opening(image, ball)
  File "/usr/lib/python2.7/dist-packages/skimage/morphology/binary.py", line 117, in binary_opening
    eroded = binary_erosion(image, selem)
  File "/usr/lib/python2.7/dist-packages/skimage/morphology/binary.py", line 41, in binary_erosion
    ndimage.convolve(binary, selem, mode='constant', cval=1, output=conv)
  File "/usr/lib/python2.7/dist-packages/scipy/ndimage/filters.py", line 696, in convolve
    origin, True)
  File "/usr/lib/python2.7/dist-packages/scipy/ndimage/filters.py", line 544, in _correlate_or_convolve
    _nd_image.correlate(input, weights, output, mode, cval, origins)
MemoryError

尺寸200x200x200的体积很小。颗粒测量法是由顺序开口组成的,因此您只需要另外2卷才能进行计算:侵蚀和扩张之间的一个临时性,而另一个用于最终结果。这意味着总共三卷。结构化元素应该是坐标列表,所以没有什么太大的。

因此,绝对没有原因您无法在计算机上执行此类尺寸的颗粒测定法。指数内存使用的唯一解释是中间结果未删除。

最新更新