Próbuję użyć scipy do wykonania erosion i dilation obrazu. Wydaje się całkiem proste, używając scipy ->binary_erosion/dialation
. Jednak wynik nie jest wcale taki, jak się spodziewano.Erozja obrazu i rozszerzenie za pomocą Scipy
Tu jest mój podstawowy kod:
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)
To wyjście:
Wyjście do dylatacji jest po prostu całkowicie biały obraz w oryginalnym "flower.png"
Uważam, że muszę określić lepsze jądro lub maskę, ale nie jestem do końca pewien, dlaczego otrzymuję zieloną produkcję erozji i całkowicie te wyjście do dylatacji.
Operatory binarne oczekują wejścia binarnego w przeciwieństwie do twojego – theta