Déformation d'image par rapport à une sélection

Discussion de programmation pour éviter d'empiéter dans les autres forums

Modérateurs : Modérateurs, Développeurs

Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Oui, j'ai eu le même pb, c'est pour ça que la méthode du masque est plus pratique finalement !

tu construis ton masque en noir et blanc :
- pour contracter de 1 pixel, tu trace un contour intérieur blanc
- pour dilater de 1 pixel du trace un contour extérieur noir

pour contracter/dilater de 20 pixels...tu appliques 20 fois la méthode :shock: c'est pour ça que le contour progressif est si lent (en plus avec un flou gaussien je te dis pas :( t'as le temps de commander un café :oops:
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Merci pour l'info...

Malheureusement je ne peux pas appliquer cette technique car je voudrait obtenir le même nombre de points (ce qui ne sera pas toujours le cas si je vectorise l'image dilatée). Je pense qu'il va falloir que j'utilise une autre technique pour mon mappage de contour...

Le même nombre de point serait nécessaire pour avoir un tableau de quadrilatére auquel il suffirait de mapper le morceau d'image correspondant (technique de distorsion de l'image par morceau)
pf
Développeur(se)|Développeur|Développeuse
Développeur(se)|Développeur|Développeuse
Messages : 974
Inscription : 28 avr. 2004 8:45
Version de PhotoFiltre : 6
Système d'exploitation : xp seven
Localisation : 78

Message par pf »

Ah oui, je vois...... :oops:
:idea: un chti griboullis....peut etre une piste, j'y réfléchirais demains au calme
http://perso.wanadoo.fr/moncoin.amoi/Idée_pB.jpg
A+
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Dommage que le lien ne marche pas :(

Je suis tombé sur ca c'est très intéressant...

http://www.developpez.net/forums/viewto ... dilatation

surtout la fin :
- j'ai crée toutes les parallèles des côtés du polygone. la distance entre la parallèle et le côté represente la valeur de dilatation

- j'ai ensuite calculé toutes les intersections de ces parallèles les unes après les autres

- j'ai recensé les points interceptés que j'ai trouvé puis je les ai relié. ce sont en fait les sommets du nouveaux polygone dilaté

cet algo marche même pour un polygone concave
merci.
Bon dans le cas d'une érosion ca déconne (la apparement il s'agissait d'une dilatation)
Dernière modification par Benjamin le 19 juil. 2004 21:53, modifié 1 fois.
pf
Développeur(se)|Développeur|Développeuse
Développeur(se)|Développeur|Développeuse
Messages : 974
Inscription : 28 avr. 2004 8:45
Version de PhotoFiltre : 6
Système d'exploitation : xp seven
Localisation : 78

Message par pf »

Et encore, je m'y suis repris 4 fois !!!!!!!!! :lol: :lol: :lol:
http://perso.wanadoo.fr/moncoin.amoi/IdeeB.zip
Dernière modification par pf le 19 juil. 2004 21:59, modifié 3 fois.
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

T'es sur qu'il y a un accent???
pf
Développeur(se)|Développeur|Développeuse
Développeur(se)|Développeur|Développeuse
Messages : 974
Inscription : 28 avr. 2004 8:45
Version de PhotoFiltre : 6
Système d'exploitation : xp seven
Localisation : 78

Message par pf »

Pffffffff........ ben oui il y a un accent JUSTEMENT et ça voulais rien savoir avec .......... J'te jure :lol:
Je l'ai mis en zip (zou) ce coup ci c'est bon .......
Je regarde ton lien .


:arrow: Ben Il va faloir de l'aspirine :lol:

:arrow: Il parle de tri de point et je pense qu'il va faloir le faire car dans une figure (ou un "angle arrondi") trop serré, il rique d'y avoir des debordements/chevauchements........
Dernière modification par pf le 19 juil. 2004 22:28, modifié 2 fois.
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Parfait en tout cas sur le papier cette idée à l'air de fonctionner :D

Merci en tout cas!
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Bon je laisse tomber je vais essayer une technique 100% bitmap...
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Ca fonctionne mais c'est vraiment pas terrible...

Image

Ca vient du fait que la dilatation bitmap déforme le contour...

Par contre j'ai remarqué que cela ne fait pas pareil pour le contour progressif??? Est-ce un cas particulier pour la sélection circulaire???

J'ai essayé en 4 voisinage (comme l'image) et en 8 voisinage mais c'est vraiment pas terrible :cry:
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Pour les formes symétriques (rect, ellipse, losange) j'utilise la défomormation de la boite englobante.

Mais bon le résultat est déjà pas mal !
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Merci mais moi je trouve ca vraiment trop laid...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Tu peux jeter un coup d'oeil dans la librairie Graphics32 de Alex Denisov.
Dans l'unité polygone, il y a une fonction Grow dont je me suis inspiré pour le tracé de ligne avec épaisseur
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Très intéressant cette library... J'ai regardé la fonction Grow apparement c'est une technique vectorielle (qui ressemble étrangement à celle que j'ai essayé de faire ces jours ci)

=> Pas sur que ca marche avec une sélection complexe tel que la pièce de puzzle... Est-ce que tu as essayé de l'utiliser pour les fonctions Dilater et Contracter avec les sélections vectorielles???
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Non, je l'utilise pour le tracé de contour. Prend la sélection puzzle et applique un contour avec epaisseur de 10 pixels. Le résulat est "variable"