2 pièce(s) jointe(s)
Ameliorer la nettete d'une image avec un filtre
Bonjour,
J'aimerais creer un script matlab pour ameliorer la nettete d'une image en me basant sur les travaux de cet article: https://ieeexplore.ieee.org/document/6271882
L'auteur explique comment utiliser un filtre a derivee fractionnelle combine a l'effet de bandes de mach pour ameliorer la nettete de l'image.
Le filtre est le suivant:
Pièce jointe 517884
Avec a(k) egal a:
Pièce jointe 517885
Afind'essayer d'appliquer ce filtre a une image, j'aimerais coder la formule presentee ci-dessus sur matlab avec le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| z=0:1:15;
L=4;
v=0.3;
e=filtre(z,L,v);
figure
plot(z,e);
function [A] = filtre(z,L,v)
k = 0:1:L;
S = sum(((-1).^k)*nchoosek(v,k)*(z.^(-k)));
end |
Cependant, lorsque j'essaye de compiler je recois l'erreur suivante:
Code:
1 2 3 4 5 6 7 8 9
| >> script
Error using nchoosek (line 29)
The second input has to be a non-negative integer.
Error in script>filtre (line 29)
S = sum(((-1).^k)*nchoosek(v,k)*(z.^(-k)));
Error in script (line 22)
e=filtre(z,L,v); |
Je ne comprends pas d'ou vient cette erreur etant donne que mon parametre k n'est jamais negatif.
Si vous avez des avis sur mon code et des idees sur comment corriger l'erreur obtenue je serais ravi de lire vos reponses.
Merci!