Description Usage Arguments Value Data format Algorithms for TV-L1 problem Algorithms for TV-L2 problem References Examples
Given an image f
, it solves an optimization of the form,
u^* = argmin_u E(u,f)+λ V(u)
where E(u,f) is fidelity term and V(u) is total variation regularization term.
The naming convention of a parameter method
is <problem type>
+ <name of algorithm>
.
For more details, see the section below.
1 2 3 4 5 6 7 |
data |
standard 2d or 3d array. |
lambda |
regularization parameter (positive real number). |
niter |
total number of iterations. |
method |
indicating problem and algorithm combination. |
normalize |
a logical; |
denoised array as same size of data
.
An input data
can be either (1) 2-dimensional matrix representaing grayscale image, or (2) 3-dimensional array
for color image.
The cost function for TV-L2 problem is
min_u |u-f|_1 + λ |\nabla u|
where for a given 2-dimensional array, |\nabla u| = ∑ sqrt(u_x^2 + u_y^2) Algorithms (in conjunction with model type) for this problems are
"TVL1.PrimalDual"
Primal-Dual algorithm.
The cost function for TV-L2 problem is
min_u |u-f|_2^2 + λ |\nabla u|
and algorithms (in conjunction with model type) for this problems are
"TVL2.PrimalDual"
Primal-Dual algorithm.
"TVL2.FiniteDifference"
Finite Difference scheme with fixed point iteration.
rudin_nonlinear_1992tvR
\insertRefchambolle_first-order_2011tvR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ## Not run:
## Load grey-scale 'lena' data
data(lena128)
## Add white noise
sinfo <- dim(lena128) # get the size information
xnoised <- lena128 + array(rnorm(128*128, sd=10), sinfo)
## apply denoising models
xproc1 <- denoise2(xnoised, lambda=10, method="TVL2.FiniteDifference")
xproc2 <- denoise2(xnoised, lambda=10, method="TVL1.PrimalDual")
## compare
gcol = gray(0:256/256)
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2), pty="s")
image(lena128, main="original", col=gcol)
image(xnoised, main="noised", col=gcol)
image(xproc1, main="TVL2.FiniteDifference", col=gcol)
image(xproc2, main="TVL1.PrimalDual", col=gcol)
par(opar)
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.