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

FDistanceLodHeatFlowOp Class Reference

#include <FDistanceLodHeatFlowOp.hpp>

Inheritance diagram for FDistanceLodHeatFlowOp:

Inheritance graph
[legend]
Collaboration diagram for FDistanceLodHeatFlowOp:

Collaboration graph
[legend]
List of all members.

Detailed Description

Float Heat recursive flow.

Author:
Bernard De Cuyper
Version:
0.05
Date:
1/07/2002
 
Purpose:        Recursieve heat flow have a nice property. The time step is directly related to the sigma of
                the gaussian blurring: t= sigma^2/2.

                Recursieve Heat flow/blurring is very fast but it destroy edges. This can be avoided by predicting
                edges before and ensure edges are maintained. 

                This could be obtained from a modulation of the time step.
                dcritical(edges)= sigma(95%)= 2*sigma
                t(critical heat flow)= (dcritical/2)^2= dcritical^2/8

                A distance map can determine edge distances. 
                
                Fast Computation of Heat recursive flow.
                        Thomas LU model.

                        Semi-Implicit solver using LOD multiplicative splitting
            (I - tau * A) * uNew=  uOld

                        LOD is ok, in isotropic situations

Papers:         "Recursivity and PDE's in image processing", 
                        L. Alvarez, R. Deriche and F Santana, Spain 1998.
                

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


Public Methods

 FDistanceLodHeatFlowOp (FImage *edgeDistance=0, int iterations=1, float t0=0.0, float tMax=20.0)
 Can be used as alternative of IIR for large sigma blurring when t=(sigma*sigma)/2.

virtual ~FDistanceLodHeatFlowOp ()
void setEdgeDistance (FImage *distanceMap)
virtual FImagefilter (FImage *src, FImage *dest=0)
 Local full image filtering.

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

virtual void report (FILE *file)

Protected Methods

virtual float getTau (int x, int y)

Protected Attributes

int w
int h
int iterMax
float tmin
float tmax
FThomasLShThomasLS
FThomasLSvThomasLS
FImagedistanceMapEdges


Member Function Documentation

FImage * FDistanceLodHeatFlowOp::filter FImage   src,
FImage   dest = 0
[virtual]
 

Local full image filtering.

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

Implements AbsFImageFilter.

FImage * FDistanceLodHeatFlowOp::selectedFilter AnImage   mask,
FImage   src,
FImage   dest = 0
[virtual]
 

Local filtering in a mask area.

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

Reimplemented from AbsFImageFilter.


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