#include <RDistanceLodHeatFlowOp.hpp>
Inheritance diagram for RDistanceLodHeatFlowOp:
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 | |
RDistanceLodHeatFlowOp (RImage *edgeDistance=0, int iterations=1, double t0=0.0, double tMax=20.0) | |
Can be used as alternative of IIR for large sigma blurring when t=(sigma*sigma)/2. | |
virtual | ~RDistanceLodHeatFlowOp () |
void | setEdgeDistance (RImage *distanceMap) |
virtual RImage * | filter (RImage *src, RImage *dest=0) |
Local full image filtering. | |
virtual RImage * | selectedFilter (AnImage *mask, RImage *src, RImage *dest=0) |
Local filtering in a mask area. | |
virtual void | report (FILE *file) |
Protected Methods | |
virtual double | getTau (int x, int y) |
Protected Attributes | |
int | w |
int | h |
int | iterMax |
double | tmin |
double | tmax |
ThomasLS * | hThomasLS |
ThomasLS * | vThomasLS |
RImage * | distanceMapEdges |
|
Local full image filtering.
Implements AbsRImageFilter. |
|
Local filtering in a mask area.
Reimplemented from AbsRImageFilter. |