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:
Avec a(k) egal a:
Afind'essayer d'appliquer ce filtre a une image, j'aimerais coder la formule presentee ci-dessus sur matlab avec le code suivant:
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Je ne comprends pas d'ou vient cette erreur etant donne que mon parametre k n'est jamais negatif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
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!
Partager