Bonjour à toutes et à toutes.

Pour un algorithme de traitement d'informations, je dois appliquer sur un tableau 600x600 un filtre de corrélation 21x21

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
int demiTaille = 10;
for(int n=0; n< 600; ++n)
    for(int m=0; m<600; ++m)
    {
        int uBegin = std::max(0, n - demiTaille );
        int uEnd = std::min(600- 1, n + demiTaille );
        int vBegin = std::max(0, m - demiTaille );
        int vEnd = std::min(600- 1, m + demiTaille );
        double temp = 0.0;
        for(int u=uBegin; u<=uEnd; ++u)
            for(int v=vBegin; v<=vEnd; ++v)
                temp += abs(tabInitial[u][v]) * filter[demiTaille + u - n][demiTaille + v - m];
        tabFinal[n][m] = temp;
    }
Le problème est que l'exécution de cette partie dure 0.4 secondes, ce qui est trop long pour mon application.

Est ce que quelqu'un aurait des solutions d'optimisation.

Merci d'avance