#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. |