作者:求学lx | 来源:互联网 | 2023-09-17 17:37
clear all;
g = double(imread('../images/barbara.png'))/255.0;
lambda=1.0;
alpha=1.2;
[m, n]=size(g);
smallNum = 0.0001;
A_x = diff(log(g+eps), 1, 2);
A_x = 1./(abs(A_x).^alpha + smallNum);
A_x = padarray(A_x, [0 1], 'post');
A_x = A_x(:);
A_x=sparse(1:1:m*n,1:1:m*n,A_x(1:1:m*n)',m*n,m*n);
A_y = diff(log(g+eps), 1, 1);
A_y = 1./(abs(A_y).^alpha + smallNum);
A_y = padarray(A_y, [1 0], 'post');
A_y = A_y(:);
A_y=sparse(1:1:m*n,1:1:m*n,A_y(1:1:m*n)',m*n,m*n);
D_x=sparse([1:1:m*n,1:1:m*n-m],[1:1:m*n,m+1:1:m*n],[-ones(1,m*n),ones(1,m*n-m)],m*n,m*n);
D_y=sparse([1:1:m*n,2:1:m*n],[1:1:m*n,1:1:m*n-1],[-ones(1,m*n),ones(1,m*n-1)],m*n,m*n);
Lg=D_x'*A_x*D_x+D_y'*A_y*D_y;
II=sparse(1:1:m*n,1:1:m*n,ones(1,m*n),m*n,m*n);
A=II+lambda*Lg;
u=A\g(:);
u=reshape(u,m,n);
figure;imshow([g,u]);