Total Variation Inpainting using Split Bregman
tvreg.h
Go to the documentation of this file.
1 
14 #ifndef _TVREG_H_
15 #define _TVREG_H_
16 
17 #include "basic.h"
18 #include "num.h"
19 
21 #define TVREGOPT_DEFAULT_LAMBDA 25
22 
23 #define TVREGOPT_DEFAULT_TOL 1e-3
24 
25 #define TVREGOPT_DEFAULT_GAMMA1 5
26 
27 #define TVREGOPT_DEFAULT_GAMMA2 8
28 
29 #define TVREGOPT_DEFAULT_MAXITER 100
30 
31 /* tvregopt is encapsulated by forward declaration */
32 typedef struct tag_tvregopt tvregopt;
33 
34 int TvRestore(num *u, const num *f, int Width, int Height, int NumChannels,
35  tvregopt *Opt);
36 
38 void TvRegFreeOpt(tvregopt *Opt);
39 void TvRegSetLambda(tvregopt *Opt, num Lambda);
41  const num *VaryingLambda, int LambdaWidth, int LambdaHeight);
42 void TvRegSetKernel(tvregopt *Opt,
43  const num *Kernel, int KernelWidth, int KernelHeight);
44 void TvRegSetTol(tvregopt *Opt, num Tol);
45 void TvRegSetGamma1(tvregopt *Opt, num Gamma1);
46 void TvRegSetGamma2(tvregopt *Opt, num Gamma2);
47 void TvRegSetMaxIter(tvregopt *Opt, int MaxIter);
48 int TvRegSetNoiseModel(tvregopt *Opt, const char *NoiseModel);
49 void TvRegSetPlotFun(tvregopt *Opt,
50  int (*PlotFun)(int, int, num, const num*, int, int, int, void*),
51  void *PlotParam);
52 void TvRegPrintOpt(const tvregopt *Opt);
53 const char *TvRegGetAlgorithm(const tvregopt *Opt);
54 
55 int TvRestoreSimplePlot(int State, int Iter, num Delta,
56  ATTRIBUTE_UNUSED const num *u,
57  ATTRIBUTE_UNUSED int Width,
58  ATTRIBUTE_UNUSED int Height,
59  ATTRIBUTE_UNUSED int NumChannels,
60  ATTRIBUTE_UNUSED void *Param);
61 
62 #endif /* _TVREG_H_ */