Bonjour à toutes et à toutes.
Pour un algorithme de traitement d'informations, je dois appliquer sur un tableau 600x600 un filtre de corrélation 21x21
Le problème est que l'exécution de cette partie dure 0.4 secondes, ce qui est trop long pour mon application.
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; }
Est ce que quelqu'un aurait des solutions d'optimisation.
Merci d'avance
Partager