#include <FDistanceLodHeatFlowOp.hpp>
Inheritance diagram for FDistanceLodHeatFlowOp:


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 FImage * | filter (FImage *src, FImage *dest=0) |
| Local full image filtering. | |
| virtual FImage * | selectedFilter (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 |
| FThomasLS * | hThomasLS |
| FThomasLS * | vThomasLS |
| FImage * | distanceMapEdges |
|
||||||||||||
|
Local full image filtering.
Implements AbsFImageFilter. |
|
||||||||||||||||
|
Local filtering in a mask area.
Reimplemented from AbsFImageFilter. |
![]() |
