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

RLysaker2thOrderFilter Class Reference

#include <RLysaker2thOrderFilter.hpp>

Inheritance diagram for RLysaker2thOrderFilter:

Inheritance graph
[legend]
Collaboration diagram for RLysaker2thOrderFilter:

Collaboration graph
[legend]
List of all members.

Detailed Description

Lysaker 2th Order TV restoration filter.

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

Paper:          "Noise Removal using Fourth-Order Partial
                        Differential Equations with Applications to
                        Medical Magnetic Resonance Images in Space and time.", 
                        Marius Lysaker & Arvid Lundervold , Report 2002, 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.
                

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


Public Methods

 RLysaker2thOrderFilter (int n, double rdt=0.1)
virtual ~RLysaker2thOrderFilter ()
virtual void setMask (int n, int *xp, int *yp)
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 operation (RImage *im, int x, int y)
virtual void operations (RImage *result)
virtual void operations (AnImage &mask, RImage *result)

Protected Attributes

RImageu0
RImageu
RImageaDUx
RImagebDUy
RImagedeltaU
double lambda
double sigma2
double epsilon
double sumI0_2
int niterations
double dt


Member Function Documentation

RImage * RLysaker2thOrderFilter::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 * RLysaker2thOrderFilter::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