00001 #ifndef __TVBeltramiFlow__ 00002 #define __TVBeltramiFlow__ 00003 00004 00005 00029 #include <stdio.h> 00030 00031 #include "AnImage.hpp" 00032 #include "RImage.hpp" 00033 00034 #include "BeltramiFlow.hpp" 00035 00036 class TVBeltramiFlow : public BeltramiFlow 00037 { 00038 private: 00039 00040 RImage* I0; // origin image 00041 double lambda; // lagrange coeff 00042 00043 public: 00044 00045 TVBeltramiFlow(RImage* startImage, double alambda=0.0):BeltramiFlow() 00046 {I0= startImage;lambda=alambda;} 00047 00048 virtual ~TVBeltramiFlow(){} 00049 00050 virtual void set(RImage* originImage){ I0= originImage; } // set at start 00051 virtual void setLamdba(double value){ lambda=value;} // set at each full iteration 00052 00053 virtual double flow(RImage& image, int x, int y); 00054 00055 virtual void report(FILE* file){} 00056 }; 00057 00058 00059 #endif