using NtToolBox using PyPlot xsharp = load_image("NtToolBox/src/data/lena.png")*256; figure(figsize=(9,9)) imageplot(xsharp) title("This is Lena"); (N1,N2) = size(xsharp) noiselevel = 20 y = xsharp + noiselevel * randn(N1,N2); figure(figsize=(9,9)) imageplot(y) title("Noisy version of Lena"); D = x -> cat(3,[diff(x,1); zeros(1,size(x,2))], [diff(x,2) zeros(size(x,1),1)]); Dadj = v -> [-v[1,:,1]'; -diff(v[1:end-1,:,1],1); v[end-2,:,1]'] + [-v[:,1,2] -diff(v[:,1:end-1,2],2) v[:,end-2,2]]; function grad_f_conj(x,y) return x + y end; function prox_g_conj(u, Lambda) return u./repeat(max(sqrt(sum(u.^2,3))/Lambda,1),outer=(1,1,2)) # soft-thresholding end; include("NtSolutions/optim_3_condat_fb_duality/exo1.jl"); figure(figsize=(9,9)) imageplot(xdenoised) title("Denoised image"); figure(figsize=(15,7)) plot(Ep_array) plot(-Ed_array) xlim(0,nbiter); figure(figsize=(15,7)) plot(log10((Ep_array+Ed_array))) xlim(0,360); include("NtSolutions/optim_3_condat_fb_duality/exo2.jl"); figure(figsize=(15,7)) plot(log10((Ep_array+Ed_array))) plot(log10((Ep_array_fista+Ed_array_fista))) xlim(0,nbiter);