Bibliothèque Scikit -> Problème avec fonction Remove_Small_Objects
Bonjour à tous,
J'ai développé le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| import numpy as np
import matplotlib.pyplot as plt
from skimage import data
from PIL import Image as imge
from skimage.filter import canny
from scipy import ndimage
from skimage import morphology
from skimage.filter import sobel
img = imge.open("ortho0007.tiff")
gray = img.convert('L')
coins = np.asarray(gray)
coins=ndimage.gaussian_filter(coins, 1)
elevation_map = sobel(coins)
markers = np.zeros_like(coins)
markers[coins < 60] = 3
markers[coins > 130] = 1
segmentation = morphology.watershed(elevation_map, markers)
test2=np.bool_(segmentation)
#test2= np.int_(segmentation)
coins_cleaned = morphology.remove_small_objects(test2, 50) |
(Je vous épargne le code utilisant les fenêtres de matplotlib pour afficher mes résultats.)
Le problème se situe au niveau de la dernière ligne avec l'utilisation de la fonction remove_small_objects.
En l’occurrence, cette dernière est censée me supprimer, sur mon image résultat, toutes les composantes faisant (ici) moins de 50pixels.
Quoi que je fasse, que je place en entrée une image booléenne ou en int, que je met 50 ou 300, le résultat que j'obtiens est noir (soit que des 0).
Au contraire, si je place directement le fichier "segmentation" au lieu de "test2" en entrée de cette fonction le résultat retournée est "segmentation", ni plus ni moins. Il ne le change donc pas.
Auriez-vous une idée de mon problème ?
Dans l'attente d'une réponse favorable,
Cordialement,
Pierre.
PS: - L'image "ortho0007" est une image .tiff d'une façade de pierres et briques.
- Voici le lien sur la documentation de cette fonction :
http://scikit-image.org/docs/dev/api..._small_objects