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 30 31 32 33 34 35 36 37 38 39
| for n=3:height-2
for m=3:width-2
if ((cr_thresh(n,m) == 0) || (cb_thresh(n,m) == 0))
d135 = abs(x(n-2,m-2) - x(n+2,m+2)); %Estimation du gradient 135°
d45 = abs(x(n+2,m-2) - x(n-2,m+2));
d90 = abs(x(n-2, m) - x(n+2, m ));
d0 = abs(x(n, m-2) - x(n, m+2 ));
[dmin, ind_min] = min([d135, d45, d90, d0]);
switch ind_min
case 1
x(n,m) = x(n-1, m-1) + (2*dmin)/5; %Interpolation suivant la "ligne" 135°
% x(n+1,m+1) = x(n+2, m+2) - dmin/3;
% x(n+1, m) = (x(n,m)+x(n+1,m-1)+x(n,m-1))/3;
% x(n, m+1) = (x(n,m)+x(n-1,m)+x(n-1,m+1))/3;
min_135 = min_135+1;
correct = correct+1;
case 2
x(n, m) = x(n+1, m-1) + (2*dmin)/5;
% x(n+1, m+1) = (x(n,m)+x(n+1,m)+x(n,m+1))/3;
min_45 = min_45+1;
correct = correct+1;
case 3
x(n,m) = x(n-1,m) + (2*dmin)/5;
% x(n+1,m) = x(n+2,m) - dmin/3;
% x(n,m+1) = (x(n,m)+x(n-1,m)+x(n-1,m+1))/3;
% x(n+1,m+1) = (x(n+1,m)+x(n,m)+x(n,m+1))/3;
min_90 = min_90+1;
correct = correct+1;
case 4
x(n,m) = x(n, m-1) + (2*dmin)/5;
% x(n,m+1) = x(n, m+2) - dmin/3;
% x(n+1,m) = (x(n+1,m-1)+x(n,m-1)+x(n,m))/3;
% x(n+1,m+1) = (x(n+1,m)+x(n,m)+x(n,m+1))/3;
min_0 = min_0+1;
correct = correct+1;
end
end
end
end |
Partager