Bonjour,

Je cherche à optimiser l'opération suivante : je possède une matrice d'entrée (représentant une image par ex.) de dimension NxN pixels. Je possède aussi 2 matrices de "transfert" qui m'indiquent localement (en (i,j)) le déplacement en x et y (en pixel) du pixel (i,j) de ma matrice d'entrée pour générer ma matrice de sortie (l'objectif étant de simuler une image localement distordue).

Actuellement, je réalise l'opération de "transformation" par 2 boucles "for" en décalant la matrice d'entrée via la fonction "circshift" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
for jj = 1 : N
    for ii = 1 : N
 
        mire_entree_decalee=circshift(mire_entree,[round(decal_x(ii,jj)) round(decal_y(ii,jj))]);
        %decal_x = matrice de transfert en X
        %decal_y = matrice de transfert en Y
 
        mire_sortie(ii,jj)=mire_entree_decalee(ii,jj);
 
   end
end
Ces 2 boucles "for" sont consommatrices de temps de calcul.
Je me demandais si il n'existerait pas une solution plus astucieuse pour économiser en temps de calcul !

Merci par avance de vos réponses,

O.M.