Preuve équivalence coordonnées rectangle de sélection de pixels

a marqué ce sujet comme résolu.

Bonsoir,

Je souhaiterais si possible svp avoir un tuyau pour amorcer au moins la démonstration qui suit.

Présentation du problème

Présentation abstraite

Je dispose d’une image. Je souhaite découper cette image en chunks (= rectangles dont carrés de sélection de pixels) dont l’une des dimensions n’est pas multiple de l’équivalente dans l’image. Ce découpage se fait selon un ordre préétabli : par exemple le long de la dimension, dans le sens croissant de cette dernière. Arrive donc le moment où le dernier chunk est trop grand : au moins une partie de ce dernier dépassera de l’image :colere2:

Arbitrairement, je souhaite donc décaler (on nommera cette opération "le DÉCALAGE") ce dernier chunk de sorte qu’il soit entièrement compris dans l’image sur la dimension sujette à ce problème de dépassement et, de plus, de sorte qu’il n’y ait aucun espace de pixels entre la fin de l’image sur cette dimension et la fin de ce chunk. Une partie de ce chunk sera donc redondante avec le chunk qui le précède sur cette dimension (et tout va bien, c’est un comportement attendu).

PS : le découpage, mis à part celui effectué par le dernier chunk (qui est un cas particulier à cause de son dépassement de l’image), se fait de chunk en chunk sur les dimensions de l’image (il n’y a donc pas de chevauchement de pixels entre chunks sauf pour ce dernier chunk).

PS 2 : je parle de "dernier chunk" au singulier mais en réalité bien sûr, il peut y avoir de multiples chunks pouvant dépasser de l’image, selon les dimensions de cette dernière et celles des chunks.

Exemple

Soit une image de 10x10 pixels. On définit un chunk comme étant un carré de sélection de 6x6 pixels. On aura donc 2 chunks : l’un de 6x6 pixels, l’autre de 6x6 pixels qui, s’il était dessiné sans DÉCALAGE, dépasserait de l’image de 2 pixels en hauteur ainsi que de 2 pixels en largeur.

La fameuse équivalence que je voudrais démontrer (pour la dimension "largeur" simplement, à des fins de lisibilité)

Je voudrais démontrer l’équivalence suivante :

La version du DÉCALAGE suivante : "SI la largeur de l’image est strictement plus petite que la largeur du chunk sommée avec la coordonnée en largeur du premier pixel du chunk sur ses dimensions de largeur et de hauteur, ALORS on décale ce chunk (à partir de son premier pixel sur ses dimensions de largeur et de hauteur) à la position suivante, par rapport au premier pixel de l’image sur les dimensions de largeur et de hauteur de celle-ci : largeur de l’image MOINS largeur du chunk"

… est équivalente à :

Cette autre version du DÉCALAGE : "SI la différence entre la largeur de l’image et la somme entre la coordonnée en largeur du premier pixel du chunk et la largeur de ce dernier est strictement inférieure à 0, ALORS on déplace ce chunk à la position suivante : coordonnée en largeur du premier pixel du chunk MOINS VALEUR ABSOLUE DE cette différence"

Ce que j’ai essayé

Voilà merci d’avance ! En bidouillant un peu, j’avais trouvé qu’on pouvait arriver à une solution sans la variable "coordonnée en largeur du premier pixel du chunk" dans la deuxième équation, en transformant la valeur absolue en racine carrée et en étudiant les deux solutions possibles de celle-ci. Et du coup il me semble qu’on retombait alors sur la première équation, démontrant ainsi l’équivalence pour "coordonnée en largeur du premier pixel du chunk >= 0" (ce qui est toujours vrai bien sûr dans le cas de traitements d’images).

Bon j’avais vu ça vite fait en bidouillant des trucs et avec WolframAlpha pour tout vous dire, du coup il faudrait que je revois ça à tête reposée et que je me relance dedans. :-°

Salut,

Perso, je ne comprends rien à tes phrases. Tu ne pourrais pas écrire un bout de code ?

Aussi, pour savoir si les deux sont équivalents, il suffit d’avoir les bons tests. C’est le genre de code qu’il est très facile de cerner avec des tests unitaires.

Yes alors en fait ne vous embêtez pas, l’équivalence ne sera pas trouvable car après réflexion c’est deux fois la même chose mais dans un cas on est sur un calcul de distance qui est interprétable comme étant une coordonnée à laquelle on ajoute une distance, et dans l’autre on est sur du calcul d’une coordonnée qu’on trouve grâce à une coordonnée et à une distance et à laquelle on ajoute une distance aussi.

En fait y a rien de démontrable c’est juste la même chose mais sous deux aspects différents ^^

Salut,

Je te conseille de faire des dessins. Pour t’aider, mais aussi pour nous faire mieux comprendre ce que tu veux faire.

+3 -0

Si L=Largeur de l’image, si C=largeur du chunk

Alors on peut calculer le modulo M=mod(L,C), M donne le nombre de pixels où il y a superposition, c’est à dire le décalage.

Par ailleurs, pour ton exemple, si tu parles d’un carré 10x10 à couvrir avec des chunks 6x6, il faut 4 chunks (un à chaque coin du carré), et pas 2.

Si tu as envie de simplifier, pour n’aborder qu’une des 2 dimensions, parle d’un rectangle 10x6, à couvrir avec des chunks 6x6.

Je ne suis pas sûr que d’aborder le problème sous l’angle d’un décalage du dernier chunk soit le plus pertinent. Je crois que la seule difficulté est encore et toujours cette histoire de poteaux et d’intervalles entre les poteaux. C’est à dire que si LL est la taille d’une ligne, l’abscice du dernier pixel d’une ligne vaut L1L-1.

En reprenant les notations d’elegance ainsi que son conseil que rester en une dimension on a de manière évidente les coordonnées du dernier chunk (LC,L1)(L-C, L-1), les autres ayant la forme (kC , (k+1)C1) avec kN(kC \space , \space (k+1)C-1) \space avec \space k \in \N (attention on est bien en 1D, les deux coordonnées sont le début et la fin du chunk). Reste à savoir la valeur maximal de kk. Pour rester dans l’image il faut que le bout du chunk soit plus petit que la largeur de celle-ci c’est à dire : (k+1)C1L1kLC1(k+1)C - 1 \leq L-1 \Leftrightarrow k \leq \frac{L}{C} - 1

Note que le cas d’égalité est le dernier chunk lorsque CC divise LL donc il vaut mieux considérer une inégalité stricte pour ne pas le compter en double.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte