1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| function [H]= gDer(img,sigma, iorder,jorder)
%Initialize the filter
break_off_sigma = 3.;
filtersize = floor(break_off_sigma*sigma+0.5);
img=fill_border(img,filtersize);
x=-filtersize:1:filtersize;
Gauss=1/(sqrt(2 * pi) * sigma)* exp((x.^2)/(-2 * sigma * sigma) );
switch(iorder)
case 0
Gx= Gauss/sum(Gauss);
case 1
Gx = -(x/sigma^2).*Gauss;
Gx = Gx./(sum(sum(x.*Gx)));
end
H = filter2(Gx,img);
switch(jorder)
case 0
Gy= Gauss/sum(Gauss);
case 1
Gy = -(x/sigma^2).*Gauss;
Gy = Gy./(sum(sum(x.*Gy)));
end
H = filter2(Gy',H);
H=H(filtersize+1:size(H,1)-filtersize,filtersize+1:size(H,2)-filtersize); |
Partager