Bonjour !

Voila j'ai un petit probleme : je cree des images en C, ce sont des images avec un fond de 0 et un disque d'intensite fixe.

J'essaie ensuite de recreer la meme image avec Matlab. Mais impossible !

Voici ma fonction C :
Code C : 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
 
void Circ(float **data, int N, int M, int centerx, int centery, int radius,float Isig)
{
  int n,m;
  float temp;
  for(n=0;n<=N-1;n++)
  {
	  for(m=0;m<=M-1;m++)
	  {
		  temp=sqrt(pow((double)((n-N/2)-centerx),2)+pow((double)((m-M/2)-centery),2));
		  if(temp<=radius)
		  {
			  data[n][m]=Isig;
		  }
		  else
			  data[n][m]=0;
      }
  }
 
}

Et la meme avec matlab :
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
 
function s = circulaire(N,M,centerx,centery,radius,intensity)
 
s = zeros(N,M);
 
for n=1:N
    for m=1:M
        temp = sqrt(((n-N/2)-centerx-1)^2+((m-M/2)*1.0-centery-1)^2);
        if (temp<=radius)
            s(n,m) = intensity;
        else
            s(n,m) = 0;
        end
    end
end
 
s = reshape(s,N*M,1);
Le seul point pour lequel ca marche c'est quand le centre du disque est a [0,0].

Merci de votre aide pour trouver pourquoi ca ne marche pas, la vraiment je seche

cecile