我正在尝试使用 scipy 来做 erosion和 dilation的图像。使用 scipy -> binary_erosion/dialation
似乎非常简单。但是,输出完全不是预期的。
这是我的基本代码:
import scipy
from scipy import ndimage
import matplotlib.pyplot as plt
import numpy as np
import Image
#im = Image.open('flower.png')
im = ndimage.imread('flower.png')
im = ndimage.binary_erosion(im).astype(np.float32)
scipy.misc.imsave('erosion.png', im)
im2 = Image.open('flower.png')
im2 = ndimage.binary_dilation(im2)
scipy.misc.imsave('dilation.png', im2)
这是输出:
扩张的输出只是原始“flower.png”的全白图像
我相信我必须指定一个更好的内核或掩码,但我不确定为什么我得到的腐 eclipse 输出是绿色的,膨胀输出是完全白色的。
最佳答案
我使用的是二元腐 eclipse 而不是 grey erosion大批。我使用 flatten=true
将原始图像转换为灰度,如下所示:
im = scipy.misc.imread('flower.png', flatten=True).astype(np.uint8)
然后调用:
im1 = ndimage.grey_erosion(im, size=(15,15))
虽然是灰度,但得到了一张很好的腐 eclipse 图片。
关于python - 使用 Scipy 进行图像腐 eclipse 和膨胀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15853875/