Extrait de contour externe ou de silhouette est une image en Python
Je veux extraire la silhouette d'une image, et je suis en train de le faire en utilisant le contour de la fonction de MatplotLib. C'est mon code:
from PIL import Image
from pylab import *
# read image to array
im = array(Image.open('HOJA.jpg').convert('L'))
# create a new figure
figure()
# show contours with origin upper left corner
contour(im, origin='image')
axis('equal')
show()
C'est mon image d'origine:
Et voici mon résultat:
Mais je veux juste montrer le contour externe, de la silhouette. Juste à la lecture des lignes dans cet exemple.
Comment puis-je le faire? J'ai lu la documentation de l' contour fonction, mais je ne peux pas obtenir ce que je veux.
Si vous connaissez une meilleure façon de le faire en Python, s'il vous plaît dites-moi! (MatplotLib, OpenCV, etc.)
Vous devez vous connecter pour publier un commentaire.
Si vous voulez coller avec votre contour de l'approche, vous pouvez simplement ajouter un niveaux argument avec une valeur "seuil" l'image entre le fond blanc et la feuille de laurier.
Vous pouvez utiliser l'histogramme pour trouver une valeur appropriée. Mais dans ce cas, la valeur légèrement inférieure à 255 va faire.
Donc:
Assurez-vous de la caisse Scikit-Image si vous voulez faire un peu de sérieux de traitement de l'image. Il contient plusieurs détection de bord algoritms etc.
http://scikit-image.org/docs/dev/auto_examples/
Pour ceux qui veulent le OpenCV solution, la voici:
Dans cet exemple, j'ai seulement attirer le plus grand contour. Rappelez-vous que l '"image" doit être un canal unique tableau.
Vous devez modifier les paramètres du seuil de la fonction, la findContours de la fonction et de la drawContours fonction pour obtenir ce que vous voulez.
Je fais la conversion de 'int' dans les drawContours fonction, car il y a un bug dans l'Open CV version 2.4.3, et si vous ne faites pas de cette conversion, le programme des pauses.
C'est le bug.
Je voudrais recommander à l'aide d'OpenCV pour la performance.
Il a un findContour fonctions accessibles à partir de python à l'aide de la
cv2
de liaison.Cette fonction peut être réglée à retourner uniquement le contour externe.
Vous devrez seuil de votre image.