bonjour,
voici mon probleme
je tente de faire un programme en c interpelé par cython pour python qui effectue la convolution d'une matrice par un noyau

le code c est le suivant

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
16
17
18
19
20
21
22
#include "_convoluer.h"
 
#define T2DINDEX(i, j, k) ((i)*(k)+(j)) //Macro permettant d'acceder aux element en concept 2D
 
 
 
void cconvoluer(float *inSource, int inLignes, int inColones,
		float *inNoyau, int inTailleNoyau, float *outResultat)
		{
		    int x=0;
		    int y=0;
		    int parcourSource=((inLignes-1)*(inColones-1))-(inTailleNoyau-1);
		    int parcourNoyau=((inTailleNoyau-1)*(inTailleNoyau-1));
 
		    for(y=0;y<parcourSource;y++) //boucle iterant sur la taille de la source - taille du noyau
		    {
		        for(x=0;x<parcourNoyau;x++) //boucle iterant sur la taille du noyau
		        {
		            outResultat[y]+=inNoyau[x]*inSource[T2DINDEX(y,x,inColones-1)]; //somme de produits des elements du noyaus avec les element correspendants dans la source
                }
		    }
		}
mais des que je l'apelle dans mon programme en python suite a sa compilation en .pyd python plante
ma fonction en python est le comptage de duré d'execution de la fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
tconvc = timeit("cconvoluer.convoluer(imageGris,filtre)","from __main__ import cconvoluer,imageGris,filtre",number=1)

mon probleme est juste de regler le probleme de ma fonction en c et je suis a cour d'idées