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
| im = double(im1);
B= im;
[m n]= size(im);
for t=1:10
im=B;
%initialisation
nabla=zeros(m-2,n-2,8);
%Calcul de tous les nabla
nabla(:,:,1)=abs(im(1:m-2,1:n-2)-im(2:m-1,2:n-1));
nabla(:,:,2)=abs(im(1:m-2,2:n-1)-im(2:m-1,2:n-1));
nabla(:,:,3)=abs(im(1:m-2,3:n)-im(2:m-1,2:n-1));
nabla(:,:,4)=abs(im(2:m-1,1:n-2)-im(2:m-1,2:n-1));
nabla(:,:,5)=abs(im(2:m-1,3:n)-im(2:m-1,2:n-1));
nabla(:,:,6)=abs(im(3:m,1:n-2)-im(2:m-1,2:n-1));
nabla(:,:,7)=abs(im(3:m,2:n-1)-im(2:m-1,2:n-1));
nabla(:,:,8)=abs(im(3:m,3:n)-im(2:m-1,2:n-1));
lapl_exp=exp(4*im(2:m-1,2:n-1)-im(2:m-1,3:n)-im(2:m-1,1:n-2)-im(1:m-2,2:n-1)-im(3:m,2:n-1));
%les maximums
MAXI=max(nabla,[],3);
for i=1:m-2
for j=1:n-2
if (MAXI(i,j) ~= 0)
B(i+1,j+1)= B(i+1,j+1) + sum(max(lapl_exp(i,j),1+nabla(i,j,:)).*nabla(i,j,:));
end
end
end
end |
Partager