Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

RdivergentROF Class Reference

#include <RdivergentROF.hpp>

Inheritance diagram for RdivergentROF:

Inheritance graph
[legend]
Collaboration diagram for RdivergentROF:

Collaboration graph
[legend]
List of all members.

Detailed Description

Rudin/Osher/Fatemi TV restoration (Gauss Jacobi iteration).

Author:
Bernard De Cuyper
Version:
0.06
Date:
12/08/2002
 
Purpose:        Test preservation of 2nd order in  TV norme restoration.

Paper:          "Mathematical models for Local Deterministic Inpaintings.",
                        page 15 to 23 
                        Tony Chan & Jianhong Shen , Report 1999, UCLA.

Purpose:        Second order filter like the Rudin/Osher/Fatemi filter are very
            good denoiser. But is some application, to much details are destroyed.
                        Also, second order filters introduce a staircase effect in images.
                        (like linear steps). Higher order filters can better maintain 
                        non-linear information and details, this happens at the cost of
                        maintaining some noise. This is a tradeoff, your choice, or perhaps
                        we may need a kind of "linearity" indicator to decide what type of local restoration
                        should be used.
                        Compute the divergent on a 1/2,1/2 stencil from 1,1 stencil 
                

@ Copyrights: Bernard De Cuyper & Eddy Fraiha 2002, Eggs & Pictures. MIT/Open BSD copyright model.


Public Methods

 RdivergentROF (int n, double rdt)
 RdivergentROF (int n, double rdt, double alambda0)
virtual ~RdivergentROF ()
virtual RImagefilter (RImage *src, RImage *dest=0)
 Local full image filtering.

virtual RImageselectedFilter (AnImage *mask, RImage *src, RImage *dest=0)
 Local filtering in a mask area.

virtual void report (FILE *file)

Protected Methods

virtual void channelConstrain ()
virtual void channelConstrain (AnImage &mask)
virtual double divergent (RImage *im, int x, int y)
virtual double operation (RImage *im, int x, int y)
virtual void operations (RImage *result)
virtual void operations (AnImage &mask, RImage *result)

Protected Attributes

RImageI0
RImageI
bool lambdaDynamic
double lambda
double epsilon2
double dt
int niterations
double sumI0_1
double sumI0_2
double I0mean
double I0sigma


Member Function Documentation

RImage * RdivergentROF::filter RImage   src,
RImage   dest = 0
[virtual]
 

Local full image filtering.

Parameters:
src  is RImage* is RImage source channel
dest  is RImage* is RImage result/placeholder
Returns :
RImage* as result,

Implements AbsRImageFilter.

RImage * RdivergentROF::selectedFilter AnImage   mask,
RImage   src,
RImage   dest = 0
[virtual]
 

Local filtering in a mask area.

Parameters:
mask  is AnImage* is a ByteImage
src  is RImage* is RImage source channel
dest  is RImage* is RImage result/placeholder
Returns :
RImage* as result,

Reimplemented from AbsRImageFilter.


The documentation for this class was generated from the following files:
SourceForge.net Logo
Restoreinpaint sourceforge project `C++/Java Image Processing, Restoration, Inpainting Project'.

Bernard De Cuyper: Open Project Leader: Concept, design and development.
Bernard De Cuyper & Eddy Fraiha 2002, 2003. Bernard De Cuyper 2004. Open and free, for friendly usage only.
Modifications on Belgium ground of this piece of artistic work, by governement institutions or companies, must be notified to Bernard De Cuyper.
bern_bdc@hotmail.com