Bonjour à tous,
Désolé pour l'intitulé du sujet, je ne savais quoi écrire...
En gros je travaille sur un code déjà écrit que je dois modifier pour changer son application. Tout se passait très bien dans le meilleur des mondes jusqu'à ce que je tombe sur le bout de code suivant :
(tiens c'est bizarre, sur visual c++ les deux premières lignes ne sortent pas en vert)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #define MAKE_FILTER(name, fun) \ static std::vector<float> make_ ## name (float sigma) { \ sigma = std::max(sigma, 0.01F); \ int len = (int)ceil(sigma * WIDTH) + 1; \ std::vector<float> mask(len); \ for (int i = 0; i < len; i++) { \ mask[i] = fun; \ } \ return mask; \ } MAKE_FILTER(fgauss, exp(-0.5*square(i/sigma)));
Je comprends l'idée générale, qui est, à partir d'une fonction mathématique définie, de créer un certain filtre. Ce qui me laisse perplexe, c'est la syntaxe, je n'ai jamais vu quelque chose comme ça .
Dans l'application (algo de traitement d'image), il n'y a de toute façon besoin que d'un seul filtre, défini à partir d'une distribution gaussienne. Donc ma question est : pouvez-vous m'expliquer à quelles notions de langage c++ ce bout de code fait référence parce que pour moi c'est de l'inconnu ? Et est-ce que, comme dirait ma grand-mère, vous avez l'impression que ça revient pas un peu à tortiller du cul pour chier droit ?
Merci d'avance.
Partager