Bonjour,
j'ai un problème assez simple en apparence, je doit écrire un mini programme qui calcul le gradient.
mais en le multipliant par une valeur(la métrique) [(4+x²+y²)² ]/16 qui va donc varier de 1 pour x=0 et y=0 (centre de l'image) à 4 pour racine(x²+y²)=1 (le bord d'un cercle)
voici mon code:
seulement ma valeur ne varie pas de 0 à 4 elle est constante.
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 m=imread('image_centre.jpg','jpg'); Im=Im(end:-1:1,:,:); Im=double(Im)/255; hx = [-1,0,1]; hy = -hx'; grad_xr = imfilter(double(Im),hx); %gradiant Horizental grad_yu = imfilter(double(Im),hy); %gradiant vertical magnit=(((grad_yu.^2)+(grad_xr.^2)).^0.5)/2; Metrique_R=((4+grad_xr.^2+grad_xr.^2)^2)/16); normGrad1=(magnit.^2 .* Metrique_R.^2).^.5;
et je ne comprend pas pourquoi.
Merci d'avance pour votre aide
Partager