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
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
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






Partager