Masquer automatiquement la partie floue d'une image


9

Pour un projet de recherche, il serait pratique de n'obtenir que la partie mise au point d'une image. Quelqu'un connaît-il un logiciel capable de le faire? Je sais que la prochaine version (dans quelques semaines) de Photoshop CC aura quelque chose comme ça, mais y a-t-il d'autres options?


Pour info, votre utilisation de "get" est très ambiguë ici. Qu'entendez-vous par «obtenir uniquement cette partie» de l'image? Voulez-vous dire que ce sont les seuls pixels que vous souhaitez conserver dans le fichier? Ou voulez-vous simplement identifier ce domaine pour une sorte d'analyse ou quoi? "Sélectionner" serait un meilleur terme, ou "masque" ou même "identifier"
Jasmine

Si vous avez plus d'une image (c'est-à-dire similaire à l'empilement de focus mais sans empilement réel), j'aurais une réponse qui vous donnerait des masques de focus.
Unapiedra

Bon point @Jasmine. J'ai des branches d'un arbuste au point sur un arrière-plan arbres / arbustes (la mise en place d'une touche bleue n'est pas une option), donc pour réduire l'erreur, je veux limiter l'analyse aux branches. Cela peut être fait en masquant ou en ayant un fichier réduit avec uniquement les pixels au point.
LaurensP

@Unapiedra, c'est la première fois que vous entendez l'empilement de focus. Comment cette méthode ou dérivée me donnerait-elle un masque de mise au point? J'aurai plusieurs photos par jour pendant un mois, une image fixe et une distance focale.
LaurensP

@LaurensP: Cela n'aiderait pas dans ce cas. Je soupçonne fortement que votre question est fausse ici: c'est une question de programmation et devrait être déplacée vers StackOverflow. Vous pouvez également développer votre question pour dire ce que vous voulez réellement faire / analyser / etc. Jusqu'à présent, vous avez révélé que vous souhaitez analyser les branches d'un arbuste, comment et pourquoi vous ne l'avez pas dit. Peut-être que le clustering et la segmentation sont une option? Veuillez télécharger un exemple d'image pendant que vous y êtes.
Unapiedra

Réponses:


5

J'utilise normalement GIMP pour cela --- cela doit probablement être affiné pour les procédures automatiques. Ma procédure est la suivante:

  1. Je charge l'image, dans ce cas http://rlog.rgtti.com/wp-content/uploads/2013/01/10/macro-lenses-are-expensive-all-of-them/paseo_15sep_more_rosse.jpg

  2. Maintenant, je copie le calque d'arrière-plan et je transforme le nouveau calque en niveaux de gris.

  3. J'applique la détection de bord par différence de gaussien:

entrez la description de l'image ici

jouer avec les paramètres pour avoir une belle zone définie. Appliquer le filtre

  1. Maintenant, vous appliquez un seuil à l'image:

entrez la description de l'image ici

... et voici une carte de votre netteté (combien de netteté vous décidez à l'étape précédente en définissant les paramètres des filtres).

  1. Vous pouvez maintenant utiliser les "outils de sélection par couleur", cliquer sur le noir, puis agrandir un peu la sélection:

entrez la description de l'image ici

... une fois que vous êtes satisfait, vous pouvez enregistrer la sélection sur un canal.

Notez que la sélection n'inclut pas les zones nettes qui sont uniformément colorées, sans bords. Je ne connais aucun moyen de le faire automatiquement (est-ce possible?); mais vous pouvez copier le canal dans un nouveau calque et

  1. éditez manuellement le calque pour remplir les zones nettes de noir:

entrez la description de l'image ici

... et répétez la procédure de sélection par couleur pour créer un nouveau masque.


Cela vous donnera des zones texturées (avec des bords). Votre utilisation de la culture est intelligente mais le résultat n'est pas parfait. Regardez l'intérieur de la feuille sur le côté gauche. Il est net, mais pas complètement noir dans le masque. Je pense que cela pourrait en fait être impossible à résoudre car on ne peut pas distinguer entre flou et sans texture.
Unapiedra

0

Dans Hugin, vous pouvez utiliser un outil qui le fait. On l'appelle enfuse.

Problème : il ne fonctionne que sur plusieurs images.

Ici vous pouvez trouver un tutoriel sur l' utilisation enfuse de mise au point empilage. Vous pouvez obtenir les masques (c'est ce que vous voulez) en utilisant --save-masks.

enfuse --exposure-weight=0 --saturation-weight=0 --contrast-weight=1 \
       --hard-mask --save-masks --output=base.tif INPUTImage*.tif

Cependant, notez que bien que cela soit automatisé, l'approche de base est la même que la réponse de Rmano: Détecter un contraste local important. Pour une explication beaucoup plus détaillée, jetez un œil à la détection de contraste local et à l'empilement de mise au point avancé dans la documentation Enfuse.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.