from pylab import * from PIL import Image from numpy import * from scipy import ndimage img = asarray(Image.open("obraz1.png").convert("L")) binary = img > 128 a = zeros((3,3)) structs = [ ndimage.generate_binary_structure(2, 1), ndimage.generate_binary_structure(2, 2) ] i = 1 for struct in structs: for j in range(1, 15, 4): dilation = ndimage.binary_dilation(binary, iterations=j, structure=struct).astype(binary.dtype) erosion = ndimage.binary_erosion(binary, iterations=j, structure=struct).astype(binary.dtype) opening = ndimage.binary_opening(binary, iterations=j, structure=struct).astype(binary.dtype) closing = ndimage.binary_closing(binary, iterations=j, structure=struct).astype(binary.dtype) openingclosing = ndimage.binary_closing(opening, iterations=j, structure=struct).astype(binary.dtype) figure(i) subplot(2,3,1) imshow(binary, cmap="gray", vmin=0, vmax=1) title("Obraz podstawowy") subplot(2,3,2) imshow(erosion, cmap="gray", vmin=0, vmax=1) title("Erozja") subplot(2,3,3) imshow(dilation, cmap="gray", vmin=0, vmax=1) title("Dylatacja")