00001
00002
00003 #ifndef _SEGMENT_PROBABILITY_ESTIMATOR_H_
00004 #define _SEGMENT_PROBABILITY_ESTIMATOR_H_
00005
00006 #include <kernel/jafarMacro.hpp>
00007 #include <image/Image.hpp>
00008
00009 namespace jafar {
00010 namespace dseg {
00011 class SegmentProbabilityEstimator {
00012 public:
00013 virtual ~SegmentProbabilityEstimator();
00014 virtual void compute( const image::Image& _dx, const image::Image& _dy, image::Image& _proba ) = 0;
00015 };
00016 class SobelSegmentProbabilityEstimator : public SegmentProbabilityEstimator {
00017 public:
00018 virtual ~SobelSegmentProbabilityEstimator();
00019 virtual void compute( const image::Image& _dx, const image::Image& _dy, image::Image& _proba );
00020 };
00021 class RotationProbabilitySegmentProbabilityEstimator : public SegmentProbabilityEstimator {
00022 public:
00023 virtual ~RotationProbabilitySegmentProbabilityEstimator();
00024 virtual void compute( const image::Image& _dx, const image::Image& _dy, image::Image& _proba );
00025 };
00026 class DirRotationProbabilitySegmentProbabilityEstimator : public SegmentProbabilityEstimator {
00027 public:
00028 virtual ~DirRotationProbabilitySegmentProbabilityEstimator();
00029 virtual void compute( const image::Image& _dx, const image::Image& _dy, image::Image& _proba );
00030 };
00031 class DirRotationProbability2SegmentProbabilityEstimator : public SegmentProbabilityEstimator {
00032 public:
00033 DirRotationProbability2SegmentProbabilityEstimator(int _aperture = 2);
00034 virtual ~DirRotationProbability2SegmentProbabilityEstimator();
00035 virtual void compute( const image::Image& _dx, const image::Image& _dy, image::Image& _proba );
00036 private:
00037 int m_aperture;
00038 };
00039 class SobelDirRotationProbability2SegmentProbabilityEstimator : public SegmentProbabilityEstimator {
00040 public:
00041 SobelDirRotationProbability2SegmentProbabilityEstimator(int _aperture = 2);
00042 virtual ~SobelDirRotationProbability2SegmentProbabilityEstimator();
00043 virtual void compute( const image::Image& _dx, const image::Image& _dy, image::Image& _proba );
00044 private:
00045 int m_aperture;
00046 };
00047 }
00048 }
00049
00050
00051 #endif