瀏覽代碼

changed names of operations to avoid conflicts

Sven Sickert 11 年之前
父節點
當前提交
0d16ee3f95
共有 3 個文件被更改,包括 117 次插入117 次删除
  1. 39 39
      semseg/SemSegContextTree3D.cpp
  2. 28 28
      semseg/operations/Operations3D.cpp
  3. 50 50
      semseg/operations/Operations3D.h

+ 39 - 39
semseg/SemSegContextTree3D.cpp

@@ -180,132 +180,132 @@ void SemSegContextTree3D::initOperations()
 
   if ( conf->gB ( featsec, "int", true ) )
   {
-    tops2.push_back ( new IntegralOps() );
-    Operation3D* o = new IntegralOps();
+    tops2.push_back ( new IntegralOps3D() );
+    Operation3D* o = new IntegralOps3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "bi_int_cent", true ) )
   {
-    tops2.push_back ( new BiIntegralCenteredOps() );
-    Operation3D* o = new BiIntegralCenteredOps();
+    tops2.push_back ( new BiIntegralCenteredOps3D() );
+    Operation3D* o = new BiIntegralCenteredOps3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "int_cent", true ) )
   {
-    tops2.push_back ( new IntegralCenteredOps() );
-    Operation3D* o = new IntegralCenteredOps();
+    tops2.push_back ( new IntegralCenteredOps3D() );
+    Operation3D* o = new IntegralCenteredOps3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar_horz", true ) )
   {
-    tops2.push_back ( new HaarHorizontal() );
-    Operation3D* o = new HaarHorizontal();
+    tops2.push_back ( new HaarHorizontal3D() );
+    Operation3D* o = new HaarHorizontal3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar_vert", true ) )
   {
-    tops2.push_back ( new HaarVertical );
-    Operation3D* o = new HaarVertical();
+    tops2.push_back ( new HaarVertical3D() );
+    Operation3D* o = new HaarVertical3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar_stack", true ) )
   {
-    tops2.push_back ( new HaarStacked() );
-    Operation3D* o = new HaarStacked();
+    tops2.push_back ( new HaarStacked3D() );
+    Operation3D* o = new HaarStacked3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar_diagxy", true ) )
   {
-    tops2.push_back ( new HaarDiagXY() );
-    Operation3D* o = new HaarDiagXY();
+    tops2.push_back ( new HaarDiagXY3D() );
+    Operation3D* o = new HaarDiagXY3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar_diagxz", true ) )
   {
-    tops2.push_back ( new HaarDiagXZ() );
-    Operation3D* o = new HaarDiagXZ();
+    tops2.push_back ( new HaarDiagXZ3D() );
+    Operation3D* o = new HaarDiagXZ3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar_diagyz", true ) )
   {
-    tops2.push_back ( new HaarDiagYZ() );
-    Operation3D* o = new HaarDiagYZ();
+    tops2.push_back ( new HaarDiagYZ3D() );
+    Operation3D* o = new HaarDiagYZ3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar3_horz", true ) )
   {
-    tops2.push_back ( new Haar3Horiz() );
-    Operation3D* o = new Haar3Horiz();
+    tops2.push_back ( new Haar3Horiz3D() );
+    Operation3D* o = new Haar3Horiz3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar3_vert", true ) )
   {
-    tops2.push_back ( new Haar3Vert() );
-    Operation3D* o = new Haar3Vert();
+    tops2.push_back ( new Haar3Vert3D() );
+    Operation3D* o = new Haar3Vert3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
   if ( conf->gB ( featsec, "haar3_stack", true ) )
   {
-    tops2.push_back ( new Haar3Stack() );
-    Operation3D* o = new Haar3Stack();
+    tops2.push_back ( new Haar3Stack3D() );
+    Operation3D* o = new Haar3Stack3D();
     o->setContext(true);
     tops3.push_back ( o );
   }
 
   if ( conf->gB ( featsec, "minus", true ) )
   {
-    tops0.push_back ( new Minus() );
-    Operation3D* o = new Minus();
+    tops0.push_back ( new Minus3D() );
+    Operation3D* o = new Minus3D();
     o->setContext(true);
     tops4.push_back ( o );
   }
   if ( conf->gB ( featsec, "minus_abs", true ) )
   {
-    tops0.push_back ( new MinusAbs() );
-    Operation3D* o = new MinusAbs();
+    tops0.push_back ( new MinusAbs3D() );
+    Operation3D* o = new MinusAbs3D();
     o->setContext(true);
     tops4.push_back ( o );
   }
   if ( conf->gB ( featsec, "addition", true ) )
   {
-    tops0.push_back ( new Addition() );
-    Operation3D* o = new Addition();
+    tops0.push_back ( new Addition3D() );
+    Operation3D* o = new Addition3D();
     o->setContext(true);
     tops4.push_back ( o );
   }
   if ( conf->gB ( featsec, "only1", true ) )
   {
-    tops0.push_back ( new Only1() );
-    Operation3D* o = new Only1();
+    tops0.push_back ( new Only13D() );
+    Operation3D* o = new Only13D();
     o->setContext(true);
     tops4.push_back ( o );
   }
   if ( conf->gB ( featsec, "rel_x", true ) )
-    tops0.push_back ( new RelativeXPosition() );
+    tops0.push_back ( new RelativeXPosition3D() );
   if ( conf->gB ( featsec, "rel_y", true ) )
-    tops0.push_back ( new RelativeYPosition() );
+    tops0.push_back ( new RelativeYPosition3D() );
   if ( conf->gB ( featsec, "rel_z", true ) )
-    tops0.push_back ( new RelativeZPosition() );
+    tops0.push_back ( new RelativeZPosition3D() );
 
   if ( conf->gB ( featsec, "ray_diff", false ) )
-    tops5.push_back ( new RayDiff() );
+    tops5.push_back ( new RayDiff3D() );
   if ( conf->gB ( featsec, "ray_dist", false ) )
-    tops5.push_back ( new RayDist() );
+    tops5.push_back ( new RayDist3D() );
   if ( conf->gB ( featsec, "ray_orient", false ) )
-    tops5.push_back ( new RayOrient() );
+    tops5.push_back ( new RayOrient3D() );
   if ( conf->gB ( featsec, "ray_norm", false ) )
-    tops5.push_back ( new RayNorm() );
+    tops5.push_back ( new RayNorm3D() );
 
   this->ops.push_back ( tops0 );
   this->ops.push_back ( tops1 );

+ 28 - 28
semseg/operations/Operations3D.cpp

@@ -111,7 +111,7 @@ std::string Operation3D::writeInfos()
 //############################## region feature ###############################
 
 
-double RegionFeat::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double RegionFeat3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   return (*feats.rProbs)[(*feats.feats)(x,y,z,channel1)][channel2];
 }
@@ -122,7 +122,7 @@ double RegionFeat::getVal ( const Features &feats, const int &x, const int &y, c
 //############################# two gray values ###############################
 
 
-double Minus::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double Minus3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
@@ -133,7 +133,7 @@ double Minus::getVal ( const Features &feats, const int &x, const int &y, const
   return v1-v2;
 }
 
-double MinusAbs::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double MinusAbs3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
@@ -144,7 +144,7 @@ double MinusAbs::getVal ( const Features &feats, const int &x, const int &y, con
   return abs(v1-v2);
 }
 
-double Addition::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double Addition3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
@@ -161,7 +161,7 @@ double Addition::getVal ( const Features &feats, const int &x, const int &y, con
 //############################## one gray value ###############################
 
 
-double Only1::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double Only13D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
@@ -175,21 +175,21 @@ double Only1::getVal ( const Features &feats, const int &x, const int &y, const
 //############################ relative positions #############################
 
 
-double RelativeXPosition::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double RelativeXPosition3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
   return ( double ) x / ( double ) xsize;
 }
 
-double RelativeYPosition::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double RelativeYPosition3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
   return ( double ) y / ( double ) ysize;
 }
 
-double RelativeZPosition::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double RelativeZPosition3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
@@ -204,7 +204,7 @@ double RelativeZPosition::getVal ( const Features &feats, const int &x, const in
 
 
 
-double GlobalFeats::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double GlobalFeats3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int xsize, ysize, zsize;
   getXYZ ( feats, xsize, ysize, zsize );
@@ -212,7 +212,7 @@ double GlobalFeats::getVal ( const Features &feats, const int &x, const int &y,
   return feats.feats->getIntegralValue( 0, 0, 0, xsize - 1, ysize - 1, zsize - 1, channel1 );
 }
 
-void IntegralOps::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int _z2, int _channel1, int _channel2, int _featType )
+void IntegralOps3D::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int _z2, int _channel1, int _channel2, int _featType )
 {
   x1 = std::min ( _x1, _x2 );
   y1 = std::min ( _y1, _y2 );
@@ -226,12 +226,12 @@ void IntegralOps::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int _z2, in
   init = true;
 }
 
-double IntegralOps::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double IntegralOps3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   return feats.feats->getIntegralValue(x + x1, y + y1, z + z1, x + x2, y + y2, z + z2, channel1);
 }
 
-void IntegralCenteredOps::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int _z2, int _channel1, int _channel2, int _featType )
+void IntegralCenteredOps3D::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int _z2, int _channel1, int _channel2, int _featType )
 {
   x1 = abs ( _x1 );
   y1 = abs ( _y1 );
@@ -245,12 +245,12 @@ void IntegralCenteredOps::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int
   init = true;
 }
 
-double IntegralCenteredOps::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double IntegralCenteredOps3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   return feats.feats->getIntegralValue(x - x1, y - y1, z - z1, x + x1, y + y1, z + z1, channel1);
 }
 
-void BiIntegralCenteredOps::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int _z2, int _channel1, int _channel2, int _featType )
+void BiIntegralCenteredOps3D::set ( int _x1, int _y1, int _z1, int _x2, int _y2, int _z2, int _channel1, int _channel2, int _featType )
 {
   x1 = std::min ( abs ( _x1 ), abs ( _x2 ) );
   y1 = std::min ( abs ( _y1 ), abs ( _y2 ) );
@@ -264,7 +264,7 @@ void BiIntegralCenteredOps::set ( int _x1, int _y1, int _z1, int _x2, int _y2, i
   init = true;
 }
 
-double BiIntegralCenteredOps::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double BiIntegralCenteredOps3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   return feats.feats->getIntegralValue(x - x1, y - y1, z - z1, x + x1, y + y1, z + z1, channel1 ) - feats.feats->getIntegralValue(x - x2, y - y2, z - z2, x + x2, y + y2, z + z2, channel1);
 }
@@ -278,7 +278,7 @@ double BiIntegralCenteredOps::getVal ( const Features &feats, const int &x, cons
 
 
 
-double HaarHorizontal::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double HaarHorizontal3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -290,7 +290,7 @@ double HaarHorizontal::getVal ( const Features &feats, const int &x, const int &
   return feats.feats->getIntegralValue(tlx, tly, tlz, lrx, y, lrz, channel1 ) - feats.feats->getIntegralValue(tlx, y, tlz, lrx, lry, lrz, channel1);
 }
 
-double HaarVertical::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double HaarVertical3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -302,7 +302,7 @@ double HaarVertical::getVal ( const Features &feats, const int &x, const int &y,
   return feats.feats->getIntegralValue(tlx, tly, tlz, x, lry, lrz, channel1) - feats.feats->getIntegralValue(x, tly, tlz, lrx, lry, lrz, channel1);
 }
 
-double HaarStacked::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double HaarStacked3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -314,7 +314,7 @@ double HaarStacked::getVal ( const Features &feats, const int &x, const int &y,
   return feats.feats->getIntegralValue(tlx, tly, tlz, lrx, lry, z, channel1) - feats.feats->getIntegralValue(tlx, tly, z, lrx, lry, lrz, channel1);
 }
 
-double HaarDiagXY::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double HaarDiagXY3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -326,7 +326,7 @@ double HaarDiagXY::getVal ( const Features &feats, const int &x, const int &y, c
   return feats.feats->getIntegralValue(tlx, tly, tlz, x, y, lrz, channel1) + feats.feats->getIntegralValue(x, y, tlz, lrx, lry, lrz, channel1) - feats.feats->getIntegralValue(tlx, y, tlz, x, lry, lrz, channel1) - feats.feats->getIntegralValue(x, tly, tlz, lrx, y, lrz, channel1);
 }
 
-double HaarDiagXZ::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double HaarDiagXZ3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -338,7 +338,7 @@ double HaarDiagXZ::getVal ( const Features &feats, const int &x, const int &y, c
   return feats.feats->getIntegralValue(tlx, tly, tlz, x, lry, z, channel1) + feats.feats->getIntegralValue(x, tly, z, lrx, lry, lrz, channel1) - feats.feats->getIntegralValue(tlx, tly, z, x, lry, lrz, channel1) - feats.feats->getIntegralValue(x, tly, tlz, lrx, lry, z, channel1);
 }
 
-double HaarDiagYZ::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double HaarDiagYZ3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -350,7 +350,7 @@ double HaarDiagYZ::getVal ( const Features &feats, const int &x, const int &y, c
   return feats.feats->getIntegralValue(tlx, tly, tlz, lrx, y, z, channel1) + feats.feats->getIntegralValue(tlx, y, z, lrx, lry, lrz, channel1) - feats.feats->getIntegralValue(tlx, tly, z, lrx, y, lrz, channel1) - feats.feats->getIntegralValue(tlx, y, tlz, lrx, lry, z, channel1);
 }
 
-double Haar3Horiz::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double Haar3Horiz3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -364,7 +364,7 @@ double Haar3Horiz::getVal ( const Features &feats, const int &x, const int &y, c
   return feats.feats->getIntegralValue(tlx, tly, tlz, lrx, mtly, lrz, channel1) - feats.feats->getIntegralValue(tlx, mtly, tlz, lrx, mlry, lrz, channel1) + feats.feats->getIntegralValue(tlx, mlry, tlz, lrx, lry, lrz, channel1);
 }
 
-double Haar3Vert::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double Haar3Vert3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -378,7 +378,7 @@ double Haar3Vert::getVal ( const Features &feats, const int &x, const int &y, co
   return feats.feats->getIntegralValue(tlx, tly, tlz, mtlx, lry, lrz, channel1) - feats.feats->getIntegralValue(mtlx, tly, tlz, mlrx, lry, lrz, channel1) + feats.feats->getIntegralValue(mlrx, tly, tlz, lrx, lry, lrz, channel1);
 }
 
-double Haar3Stack::getVal ( const Features &feats, const int &x, const int &y, const int &z )
+double Haar3Stack3D::getVal ( const Features &feats, const int &x, const int &y, const int &z )
 {
   int tlx = x - abs(x1);
   int tly = y - abs(y1);
@@ -396,7 +396,7 @@ double Haar3Stack::getVal ( const Features &feats, const int &x, const int &y, c
 
 
 //############################### Ray Features ################################
-double RayDiff::getVal( const Features &feats, const int &x, const int &y, const int &z )
+double RayDiff3D::getVal( const Features &feats, const int &x, const int &y, const int &z )
 {
 
   double dist1 = feats.feats->get( x, y, z, feats.feats->channels()-24+z1 );
@@ -408,17 +408,17 @@ double RayDiff::getVal( const Features &feats, const int &x, const int &y, const
     return 0.0;
 }
 
-double RayDist::getVal( const Features &feats, const int &x, const int &y, const int &z )
+double RayDist3D::getVal( const Features &feats, const int &x, const int &y, const int &z )
 {
   return feats.feats->get( x, y, z, feats.feats->channels()-24+z1 );
 }
 
-double RayNorm::getVal( const Features &feats, const int &x, const int &y, const int &z )
+double RayNorm3D::getVal( const Features &feats, const int &x, const int &y, const int &z )
 {
   return feats.feats->get( x, y, z, feats.feats->channels()-16+z1 );
 }
 
-double RayOrient::getVal( const Features &feats, const int &x, const int &y, const int &z )
+double RayOrient3D::getVal( const Features &feats, const int &x, const int &y, const int &z )
 {
   return feats.feats->get( x, y, z, feats.feats->channels()-8+z1 );
 }

+ 50 - 50
semseg/operations/Operations3D.h

@@ -262,7 +262,7 @@ class Operation3D
 /**
  * @brief simple equality check ?(A==B)
  **/
-class RegionFeat: public Operation3D
+class RegionFeat3D: public Operation3D
 {
   public:
     /**
@@ -280,7 +280,7 @@ class RegionFeat: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RegionFeat();
+      return new RegionFeat3D();
     }
 
     /**
@@ -305,7 +305,7 @@ class RegionFeat: public Operation3D
 /**
  * @brief simple difference operation A-B
  **/
-class Minus: public Operation3D
+class Minus3D: public Operation3D
 {
   public:
     /**
@@ -323,7 +323,7 @@ class Minus: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new Minus();
+      return new Minus3D();
     }
 
     /**
@@ -358,7 +358,7 @@ class Minus: public Operation3D
 /**
  * @brief simple absolute difference operation |A-B|
  **/
-class MinusAbs: public Operation3D
+class MinusAbs3D: public Operation3D
 {
 
   public:
@@ -377,7 +377,7 @@ class MinusAbs: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new MinusAbs();
+      return new MinusAbs3D();
     }
 
     /**
@@ -412,7 +412,7 @@ class MinusAbs: public Operation3D
 /**
  * @brief simple addition operation A+B
  **/
-class Addition: public Operation3D
+class Addition3D: public Operation3D
 {
 
   public:
@@ -431,7 +431,7 @@ class Addition: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new Addition();
+      return new Addition3D();
     }
 
     /**
@@ -466,7 +466,7 @@ class Addition: public Operation3D
 /**
  * @brief simple single element access operation
  **/
-class Only1: public Operation3D
+class Only13D: public Operation3D
 {
   public:
     /**
@@ -484,7 +484,7 @@ class Only1: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new Only1();
+      return new Only13D();
     }
 
     /**
@@ -519,7 +519,7 @@ class Only1: public Operation3D
 /**
  * @brief get current relative x position
  **/
-class RelativeXPosition: public Operation3D
+class RelativeXPosition3D: public Operation3D
 {
   public:
     /**
@@ -537,7 +537,7 @@ class RelativeXPosition: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RelativeXPosition();
+      return new RelativeXPosition3D();
     }
 
     /**
@@ -569,7 +569,7 @@ class RelativeXPosition: public Operation3D
 /**
  * @brief get current relative y position
  **/
-class RelativeYPosition: public Operation3D
+class RelativeYPosition3D: public Operation3D
 {
   public:
     /**
@@ -587,7 +587,7 @@ class RelativeYPosition: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RelativeYPosition();
+      return new RelativeYPosition3D();
     }
 
     /**
@@ -619,7 +619,7 @@ class RelativeYPosition: public Operation3D
 /**
  * @brief get current relative z position
  **/
-class RelativeZPosition: public Operation3D
+class RelativeZPosition3D: public Operation3D
 {
   public:
     /**
@@ -637,7 +637,7 @@ class RelativeZPosition: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RelativeZPosition();
+      return new RelativeZPosition3D();
     }
 
     /**
@@ -669,7 +669,7 @@ class RelativeZPosition: public Operation3D
 /**
  * @brief uses mean in a window given by (x1,y1,z1) (x2,y2,z2)
  **/
-class IntegralOps: public Operation3D
+class IntegralOps3D: public Operation3D
 {
   public:
     /**
@@ -702,7 +702,7 @@ class IntegralOps: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new IntegralOps();
+      return new IntegralOps3D();
     }
 
     /**
@@ -738,7 +738,7 @@ class IntegralOps: public Operation3D
 /**
  * @brief like a global bag of words to model the current appearance of classes in an image without local context
  **/
-class GlobalFeats: public IntegralOps
+class GlobalFeats3D: public IntegralOps3D
 {
 
   public:
@@ -757,7 +757,7 @@ class GlobalFeats: public IntegralOps
      **/
     virtual Operation3D* clone()
     {
-      return new GlobalFeats();
+      return new GlobalFeats3D();
     }
 
     /**
@@ -792,7 +792,7 @@ class GlobalFeats: public IntegralOps
 /**
  * @brief uses mean of Integral image given by x1, y1, z1 with current pixel as center
  **/
-class IntegralCenteredOps: public IntegralOps
+class IntegralCenteredOps3D: public IntegralOps3D
 {
   public:
     /**
@@ -825,7 +825,7 @@ class IntegralCenteredOps: public IntegralOps
      **/
     virtual Operation3D* clone()
     {
-      return new IntegralCenteredOps();
+      return new IntegralCenteredOps3D();
     }
 
     /**
@@ -860,7 +860,7 @@ class IntegralCenteredOps: public IntegralOps
 /**
  * @brief uses different of mean of Integral image given by two windows, where (x1,y1,z1) is the width, height & depth of window1 and (x2,y2,z2) of window 2
  **/
-class BiIntegralCenteredOps: public IntegralCenteredOps
+class BiIntegralCenteredOps3D: public IntegralCenteredOps3D
 {
   public:
     /**
@@ -893,7 +893,7 @@ class BiIntegralCenteredOps: public IntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new BiIntegralCenteredOps();
+      return new BiIntegralCenteredOps3D();
     }
 
     /**
@@ -930,7 +930,7 @@ class BiIntegralCenteredOps: public IntegralCenteredOps
  * ++
  * --
  **/
-class HaarHorizontal: public IntegralCenteredOps
+class HaarHorizontal3D: public IntegralCenteredOps3D
 {
   public:
     /**
@@ -948,7 +948,7 @@ class HaarHorizontal: public IntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new HaarHorizontal();
+      return new HaarHorizontal3D();
     }
 
     /**
@@ -985,7 +985,7 @@ class HaarHorizontal: public IntegralCenteredOps
  * +-
  * +-
  **/
-class HaarVertical: public IntegralCenteredOps
+class HaarVertical3D: public IntegralCenteredOps3D
 {
   public:
     /**
@@ -1003,7 +1003,7 @@ class HaarVertical: public IntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new HaarVertical();
+      return new HaarVertical3D();
     }
 
     /**
@@ -1040,7 +1040,7 @@ class HaarVertical: public IntegralCenteredOps
  * +-
  * +-
  **/
-class HaarStacked: public IntegralCenteredOps
+class HaarStacked3D: public IntegralCenteredOps3D
 {
   public:
     /**
@@ -1058,7 +1058,7 @@ class HaarStacked: public IntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new HaarStacked();
+      return new HaarStacked3D();
     }
 
     /**
@@ -1095,7 +1095,7 @@ class HaarStacked: public IntegralCenteredOps
  * +-
  * -+
  **/
-class HaarDiagXY: public IntegralCenteredOps
+class HaarDiagXY3D: public IntegralCenteredOps3D
 {
   public:
     /**
@@ -1113,7 +1113,7 @@ class HaarDiagXY: public IntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new HaarDiagXY();
+      return new HaarDiagXY3D();
     }
 
     /**
@@ -1150,7 +1150,7 @@ class HaarDiagXY: public IntegralCenteredOps
  * +-
  * -+
  **/
-class HaarDiagXZ: public IntegralCenteredOps
+class HaarDiagXZ3D: public IntegralCenteredOps3D
 {
   public:
     /**
@@ -1168,7 +1168,7 @@ class HaarDiagXZ: public IntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new HaarDiagXZ();
+      return new HaarDiagXZ3D();
     }
 
     /**
@@ -1205,7 +1205,7 @@ class HaarDiagXZ: public IntegralCenteredOps
  * +-
  * -+
  **/
-class HaarDiagYZ: public IntegralCenteredOps
+class HaarDiagYZ3D: public IntegralCenteredOps3D
 {
   public:
     /**
@@ -1223,7 +1223,7 @@ class HaarDiagYZ: public IntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new HaarDiagYZ();
+      return new HaarDiagYZ3D();
     }
 
     /**
@@ -1262,7 +1262,7 @@ class HaarDiagYZ: public IntegralCenteredOps
  * +++
  */
 
-class Haar3Horiz: public BiIntegralCenteredOps
+class Haar3Horiz3D: public BiIntegralCenteredOps3D
 {
   public:
     /**
@@ -1280,7 +1280,7 @@ class Haar3Horiz: public BiIntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new Haar3Horiz();
+      return new Haar3Horiz3D();
     }
 
     /**
@@ -1318,7 +1318,7 @@ class Haar3Horiz: public BiIntegralCenteredOps
  * +-+
  * +-+
  */
-class Haar3Vert: public BiIntegralCenteredOps
+class Haar3Vert3D: public BiIntegralCenteredOps3D
 {
   public:
     /**
@@ -1336,7 +1336,7 @@ class Haar3Vert: public BiIntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new Haar3Vert();
+      return new Haar3Vert3D();
     }
 
     /**
@@ -1374,7 +1374,7 @@ class Haar3Vert: public BiIntegralCenteredOps
  * +-+
  * +-+
  */
-class Haar3Stack: public BiIntegralCenteredOps
+class Haar3Stack3D: public BiIntegralCenteredOps3D
 {
   public:
     /**
@@ -1392,7 +1392,7 @@ class Haar3Stack: public BiIntegralCenteredOps
      **/
     virtual Operation3D* clone()
     {
-      return new Haar3Stack();
+      return new Haar3Stack3D();
     }
 
     /**
@@ -1430,7 +1430,7 @@ class Haar3Stack: public BiIntegralCenteredOps
 /**
  * @brief Ray Distance-Difference features
  */
-class RayDiff: public Operation3D
+class RayDiff3D: public Operation3D
 {
   public:
     /**
@@ -1448,7 +1448,7 @@ class RayDiff: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RayDiff();
+      return new RayDiff3D();
     }
 
     /**
@@ -1473,7 +1473,7 @@ class RayDiff: public Operation3D
 /**
  * @brief Ray Distance features
  */
-class RayDist: public Operation3D
+class RayDist3D: public Operation3D
 {
   public:
     /**
@@ -1491,7 +1491,7 @@ class RayDist: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RayDist();
+      return new RayDist3D();
     }
 
     /**
@@ -1516,7 +1516,7 @@ class RayDist: public Operation3D
 /**
  * @brief Ray Orientation features
  */
-class RayOrient: public Operation3D
+class RayOrient3D: public Operation3D
 {
   public:
     /**
@@ -1534,7 +1534,7 @@ class RayOrient: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RayOrient();
+      return new RayOrient3D();
     }
 
     /**
@@ -1559,7 +1559,7 @@ class RayOrient: public Operation3D
 /**
  * @brief Ray Norm features
  */
-class RayNorm: public Operation3D
+class RayNorm3D: public Operation3D
 {
   public:
     /**
@@ -1577,7 +1577,7 @@ class RayNorm: public Operation3D
      **/
     virtual Operation3D* clone()
     {
-      return new RayNorm();
+      return new RayNorm3D();
     }
 
     /**