from bilevel_imaging_toolbox import solvers
from bilevel_imaging_toolbox import image_utils
from bilevel_imaging_toolbox import plot_utils

### Testing dual rof model
# Loading image
image = image_utils.load_image('../examples/images/cameraman.png')
# Convert it to grayscale
image = image_utils.convert_to_grayscale(image)
# Add impulse noise to the image
n_image = image_utils.add_impulse_noise(image,amount=0.2)
# Add gaussian noise to the image
#g_image = image_utils.add_gaussian_noise(image,var=0.01)

# Parameter Definition
# clambda = 0.1
# sigma = 1.9
# tau = 0.9/sigma
clambda = 0.15
sigma = 1.9
tau = 0.9/sigma

# Call the solver using Forward-Backward
#(fb_image,fb_values) = solvers.forward_backward_ROF(n_image,clambda,tau,iters=50)
# Call the solver using Chambolle-Pock
(cp_image,cp_values) = solvers.chambolle_pock_ROF(n_image,clambda,tau,sigma,iters=200)
#(cpg_image,cpg_values) = solvers.chambolle_pock_ROF(g_image,clambda,tau,sigma,iters=200)

clambda = 0.6
sigma = 1.9
tau = 0.9/sigma
Exemplo n.º 2
0
from bilevel_imaging_toolbox import solvers
from bilevel_imaging_toolbox import image_utils
from bilevel_imaging_toolbox import plot_utils

### Testing dual rof model
# Loading image
image = image_utils.load_image('../examples/images/lena.png')
# Convert it to grayscale
image = image_utils.convert_to_grayscale(image)
# Add impulse noise to the image
n_image = image_utils.add_impulse_noise(image,amount=0.2)

# Plot both images
#image_utils.show_collection([image,n_image],["original","gaussian noise"])
# Parameter Definition
clambda = 0.9
tau = 1
sigma = 1/tau

# Call the solver using Chambolle-Pock
(cp_image,cp_values) = solvers.chambolle_pock_TVl1(n_image,clambda,tau,sigma,iters=200)

# Plot resulting images
image_utils.show_collection([image,n_image,cp_image],["original","s&p","denoised impulse tv-l1"])
plot_utils.plot_collection([cp_values],["CP"])
from bilevel_imaging_toolbox import cuda_solvers
from bilevel_imaging_toolbox import solvers
from bilevel_imaging_toolbox import image_utils

### Testing dual rof model
# Loading image
image_path = '../examples/images/Playing_Cards_3.png'
image = image_utils.load_image(image_path)
# Convert it to grayscale
image = image_utils.convert_to_grayscale(image)
# Add gaussian noise to the image
g_image = image_utils.add_gaussian_noise(image, var=0.02)

clambda = 8
tau = 0.25
sigma = 1 / (tau * 8)

#Call the solver using Chambolle-Pock
#(cp_image,cp_values) = solvers.chambolle_pock_ROF(g_image,clambda,tau,sigma,200)

# Call the solver using CUDA Chambolle-Pock
(ccp_image,
 ccp_values) = cuda_solvers.chambolle_pock_ROF_CUDA(g_image, clambda, tau,
                                                    sigma, 100)
image_utils.save_image(ccp_image, 'CUDA_ROF_PC3.png')

# Plot resulting images
#image_utils.show_collection([image,g_image,fb_image,cp_image],["original","gaussian noise","denoised FB","denoised CP"])
#plot_utils.plot_collection([fb_values,cp_values],["FB","CP"])
from bilevel_imaging_toolbox import cuda_solvers
from bilevel_imaging_toolbox import solvers
from bilevel_imaging_toolbox import image_utils

### Testing dual rof model
# Loading image
image = image_utils.load_image('../examples/images/Playing_Cards_3.png')
# Convert it to grayscale
image = image_utils.convert_to_grayscale(image)
# Add gaussian noise to the image
#n_image = image_utils.add_impulse_noise(image,amount=0.2)

clambda = 0.2
sigma = 1.9
tau = 0.9 / sigma

#Call the solver using Chambolle-Pock
#(cp_image,cp_values) = solvers.chambolle_pock_ROF(g_image,clambda,tau,sigma,200)

# Call the solver using CUDA Chambolle-Pock
(ccp_image,
 ccp_values) = cuda_solvers.chambolle_pock_TVl1_CUDA(image, clambda, tau,
                                                     sigma, 100)
image_utils.save_image(ccp_image, 'CUDA_TVl1_PC3.png')

# Plot resulting images
#image_utils.show_collection([image,g_image,fb_image,cp_image],["original","gaussian noise","denoised FB","denoised CP"])
#plot_utils.plot_collection([fb_values,cp_values],["FB","CP"])