Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Transformation Bijective

Posté par
glacialwind
01-05-17 à 15:10

Bonjour à tous !
Je travaille sur une transformation bijective d'image, qu'on appelle la Transformation Concentrique; dans cette transformation, il faut concevoir l'image comme une succession de rectangles emboîtés. Les pixels se déplacent sur ces rectangles dans le sens horaire.
J'ai des fonction mathématiques pour déplacer les pixels dans le sens horaire - c'est à dire, vers la droite, vers le bas, vers la gauche ou bien vers le haut - mais je n'arrive pas à trouver un moyen pour mettre dans mes conditions, lors de la programmation, c'est-à-dire, quand savoir lorsqu'un pixel est le coté gauche, droit, bas ou haut du rectangle.
Par exemple, pour une image de dimension 4x4, on sait que pour le premier rectangle, a partir de l'extérieur, si on donnait des coordonnées (x, y) aux pixels ( x pour numéro de la colonne, et y le numéro de la ligne ), on remarque que sur la première ligne, tous les pixels ont une valeur de y = 0, le coté droit x = 255, le coté gauche x = 0, le coté inférieur du rectangle y = 255. J'essaye de trouver une relation entre les cotés, mais je n'y arrive pas. J'ai essayé avec les modulos, par exemple si (y + 1) %256 = 0, alors c'est tel ou tel coté ... mais moi même je n'arrive pas à comprendre comment faire à partir de ça ..
Si quelqu'un pourrait bien m'aider s'il vous plaît ?
Merci beaucoup

Posté par
glacialwind
re : Transformation Bijective 01-05-17 à 15:29

glacialwind @ 01-05-2017 à 15:10


Par exemple, pour une image de dimension 4x4

Une image de dimension 256x256, excusez moi

Posté par
verdurin
re : Transformation Bijective 01-05-17 à 18:16

Bonsoir,
en supposant que lignes et colonnes soit numérotées de 0 à n ( de 0 à 255 dans ton exemple)
on peut numéroter les « couronnes » de 0, la plus extérieure, à (n-1)/2, la plus intérieure. ( De 0 à127 dans 127 dans ton exemple).

Un point (i;j) est dans la couronne numéro inf(i , j , n-i , n-j)

Posté par
glacialwind
re : Transformation Bijective 01-05-17 à 19:11

C'est effectivement pour déterminer si (i, j) appartient a une couronne
Première couronne :     0 -> 255
Deuxième couronne :   1 -> 254
Troisième couronne :     2 -> 253
...

Posté par
verdurin
re : Transformation Bijective 01-05-17 à 21:01

Il est certain que (i;j) appartient à une couronne.
Tu as maintenant une méthode pour déterminer la quelle.

Il me semble que ton problème est plutôt de parcourir une couronne.

Posté par
glacialwind
re : Transformation Bijective 01-05-17 à 21:13

Je n'ai pas compris votre reponse, le truc du ```inf```

Posté par
glacialwind
re : Transformation Bijective 02-05-17 à 15:49

Probleme résolu



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !