Convolution d'image

Convolution d'image - Algo - Programmation

Marsh Posté le 28-06-2005 à 01:58:58    

Bonsoir,  
j'ai un probleme lorsque je fais une convolution d'image, ca marche tres bien pour des images de taille 256*256 mais pour les autres ca crée un effet de mosaïque. (je travaille en niveau de gris). D'ou peut venir le probleme?  
 
Exemple :
 
int L[3][3]={{1,1,1},{1,1,1},{1,1,1}}; //filtre gaussien
 
void Fonction()
{
   for(i=1;i<W-1;i++)
     {
     for(j=1;j<H-1;j++)
     {  
           IM[i][j]= (L[0][0]*IMG[i-1][j-1]+
        L[0][1]*IMG[i-1][j]+
        L[0][2]*IMG[i-1][j+1]+
        L[1][0]*IMG[i][j-1]+
        L[1][1]*IMG[i][j]+  
        L[1][2]*IMG[i][j+1]+
        L[2][0]*IMG[i+1][j-1]+
        L[2][1]*IMG[i+1][j]+
        L[2][2]*IMG[i+1][j+1])/9;
   
}

Reply

Marsh Posté le 28-06-2005 à 01:58:58   

Reply

Marsh Posté le 28-06-2005 à 08:35:46    

C'est quoi IM[i][j] ? C'est la chrominance du pixel (i,j) ? La luminance ? Le contraste ? autre ?

Reply

Marsh Posté le 28-06-2005 à 08:52:43    

1) inverse tes boucles (on va plus vite à parcourir les colonnes à chaque itération que les lignes)
2) tu divises par 9 c'est bien, mais attention si tu changes les coefs. de L (pour une convolution on divise par la somme des coefs.)
3) attention à tes indices!!! i donne les colonnes et j les lignes, or tu accèdes à tes pixels par [colonnes][lignes] alors que c'est le contraire!!!
 
Pour répondre à 1), à 3) et à ton problème en même temps, inverse H et W dans tes boucles.

Reply

Marsh Posté le 28-06-2005 à 13:46:54    

Citation :


C'est quoi IM[i][j] ? C'est la chrominance du pixel (i,j) ? La luminance ? Le contraste ? autre ?


C'est le niveau de gris du pixel.
 

Citation :

1) inverse tes boucles (on va plus vite à parcourir les colonnes à chaque itération que les lignes)
2) tu divises par 9 c'est bien, mais attention si tu changes les coefs. de L (pour une convolution on divise par la somme des coefs.)
3) attention à tes indices!!! i donne les colonnes et j les lignes, or tu accèdes à tes pixels par [colonnes][lignes] alors que c'est le contraire!!!
 
Pour répondre à 1), à 3) et à ton problème en même temps, inverse H et W dans tes boucles.


 
C'etait bete! Merci  :jap:! c'est bon ca marche!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed