Seam carving

Soyez le premier à donner votre avis sur cette source.

Vue 4 958 fois - Téléchargée 809 fois

Description

Je continue mes effets de redimensionnement avec un autre algorithme très sympathique.
Le recadrage intelligent (Seam carving) permet de supprimer ou d'ajouter des pixels de façon intelligente.
Dans mon code, je ne fait qu'en supprimer.
en temps normal, si on veux diminuer les dimensions d'une image, il faut soit :
- recarder l'image (on perde les bords)
- rétrécir l'image (on obtient des déformations, aplatissement, tassement...)

Dans cet algo, on recherche dans l'image un chemin de 1 pixel (horizontal ou vertical) qui contient des informations peu importante et on le supprime.
On recommence ce principe pour supprimer un nombre N de pixel en largeur ou en hauteur.

Le résultat : l'image "s’aplatit" dans des zones de moindre importance et garde les zones "visuellement" importante.

Voir : http://fr.wikipedia.org/wiki/Seam_carving

On calcul en premier lieu l’énergie de chaque pixel (son importance), grâce à l'algorithme de recherche de contour de Sobel.
Ensuite, on cherche un chemin avec un coût en énergie minimum.
Puis on supprime ce chemin.
et on recommence.

Pour aller plus loin, on pourrait ajouter la possibilité de définir des zones à supprimer en priorité, ou encore des zones à ne jamais toucher.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_pseudo3
Messages postés
270
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2018
-
Bonjour,

A mon avis c'est aussi la prouesse d'un jongleur de mathématiques.

A+.
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5 -
"Le résultat : l'image "s' aplatit" dans des zones de moindre importance et garde les zones "visuellement" importante."

Un de mes test:
Crop width: 400
Crop height: 271

Attention! ce n' est pas une simple source de redimensionnement, c' est pratiquement un travail artistique!
À voir absolument.

a+

PS: ça manque de commentaires ...
cs_pseudo3
Messages postés
270
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2018
-
Bonjour Barbichette,

OK pour les valeurs de Crop, merci.

A propos de "Pour les zones à maintenir, il faut affecter une énergie énorme à la zone. Au contraire, une zone à supprimer correspond à une zone d'énergie nulle." :
Et pour la possibilité de définir une zone sélectionnée à supprimer en priorité comme vu sur des vidéos c'est difficile à faire ??? Ce serait intéressant pour de la retouche d'images.

A+.
cs_pseudo3
Messages postés
270
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
7 juin 2018
-
Re-Salut Barbichette,

Pour info : Tu peux trouver ici : http://www.developpez.net/forums/d418823/autres-langages/algorithmes/contribuez/image-seam-carving/
les sources d'un Code de seam-carving tricoté en Java ... pour le cas où tu causerais cette langue.

A+.
cs_barbichette
Messages postés
243
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013
-
Salut,
Les valeurs de Crop sont le nombre de pixels à retirer sur l'image originale.
Donc le fonctionnement est correct (800-300=500 et 542-400=142)

Pour les zones à maintenir, il faut affecter une énergie énorme à la zone. Au contraire, une zone à supprimer correspond à une zone d'énergie nulle.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.