Ich versuche scipy erosion und dilation eines Bildes zu verwenden. Es scheint ziemlich einfach mit scipy ->binary_erosion/dialation
. Die Ausgabe ist jedoch überhaupt nicht das, was erwartet wird.Bilderosion und Dilatation mit Scipy
Hier ist mein Grundcode:
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)
Dies ist der Ausgang:
Der Ausgang für die Dilatation ist nur ein vollständig weißes Bild für das Original "flower.png"
Ich glaube, dass ich einen besseren Kernel oder eine bessere Maske angeben muss, aber ich bin mir nicht wirklich sicher, warum ich eine grüne Ausgabe für Erosion und komplett whi bekomme Der Ausgang für die Dilatation.
binäre Operatoren erwarten binäre Eingabe im Gegensatz zu Ihnen – theta