Bonsoir,
Une solution, si tu possèdes l'Image Processing Toolbox: utliser blkproc
E = blkproc(P0,[1 1],[1 1],@energie);
Par contre, la fonction energie devra être codée de façon à traiter chaque bloc 3x3 directement, tu n'auras plus besoin de i et j qui te positionneront dans la matrice.
Si tu ne possèdes pas l'Image Processing Toolbox,
une solution serai déjà de faire partir tes boucles à 2 et les faire terminer à s(1) -1 et s(2) -1, ce qui t'éconimiserai un if/else, traitant les bords en dehors des boucles.
De plus la fonction energie, ne faisant que quelques lignes, tu pourrais l'écrire directement dans la boucle, économisant ainsi l'appel d'une fonction.
Je ne vois pas d'autres modifications significatives, quelqu'un d'autre pourra peut-être
Partager