Browse Source

removed tmp files

Bjoern Froehlich 13 years ago
parent
commit
aa121c8832

+ 0 - 278
features/localfeatures/Centrist.cpp~

@@ -1,278 +0,0 @@
-/** 
- * @file Centrist.cpp
- * @brief Implementation of the Centrist feature published in  "CENTRIST: A Visual Descriptor for Scene Categorization" (PAMI 2011)
- * @author Alexander Lütz
- * @date 12/06/2011
-*/
-#include <iostream>
-
-#include "vislearning/features/localfeatures/Centrist.h"
-#include "core/image/ImageT.h"
-#include "core/vector/VVector.h"
-
-using namespace OBJREC;
-using namespace std;
-using namespace NICE;
-
-/* protected methods*/
-
-/**
- * @brief: perform centrist transformation for a single pixel 
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-//TODO maybe inline?
-int CensusTransform(const NICE::Image & img, const int & x, const int & y)
-{
-	int index(0);
-	if (! img.isWithinImage(x,y)) return index;
-	
-	if( (img.isWithinImage(x-1,y-1)) && (img.getPixelInt(x,y)<=img.getPixelInt(x-1,y-1)) ) index |= 0x80;
-	if( (img.isWithinImage(x-1,y)) && (img.getPixelInt(x,y)<=img.getPixelInt(x-1,y)) ) index |= 0x40;
-	if( (img.isWithinImage(x-1,y+1)) && (img.getPixelInt(x,y)<=img.getPixelInt(x-1,y+1)) ) index |= 0x20;
-	if( (img.isWithinImage(x,y-1)) && (img.getPixelInt(x,y)<=img.getPixelInt(x,y-1)) ) index |= 0x10;
-	if( (img.isWithinImage(x,y+1)) && (img.getPixelInt(x,y)<=img.getPixelInt(x,y+1)) ) index |= 0x08;
-	if( (img.isWithinImage(x+1,y-1)) && (img.getPixelInt(x,y)<=img.getPixelInt(x+1,y-1)) ) index |= 0x04;
-	if( (img.isWithinImage(x+1,y)) && (img.getPixelInt(x,y)<=img.getPixelInt(x+1,y)) ) index |= 0x02;
-	if( (img.isWithinImage(x+1,y+1)) && (img.getPixelInt(x,y)<=img.getPixelInt(x+1,y+1)) ) index |= 0x01;
-	return index;
-}
-
-/**
- * @brief: perform centrist transformation for a single pixel 
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-//TODO maybe inline?
-int CensusTransform(const NICE::ColorImage & img, const int & x, const int & y, const int & channel)
-{
-	int index(0);
-	if (! img.isWithinImage(x,y)) return index;
-	
-	if( (img.isWithinImage(x-1,y-1)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x-1,y-1, channel)) ) index |= 0x80;
-	if( (img.isWithinImage(x-1,y)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x-1,y, channel)) ) index |= 0x40;
-	if( (img.isWithinImage(x-1,y+1)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x-1,y+1, channel)) ) index |= 0x20;
-	if( (img.isWithinImage(x,y-1)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x,y-1, channel)) ) index |= 0x10;
-	if( (img.isWithinImage(x,y+1)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x,y+1, channel)) ) index |= 0x08;
-	if( (img.isWithinImage(x+1,y-1)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x+1,y-1, channel)) ) index |= 0x04;
-	if( (img.isWithinImage(x+1,y)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x+1,y, channel)) ) index |= 0x02;
-	if( (img.isWithinImage(x+1,y+1)) && (img.getPixelInt(x,y, channel)<=img.getPixelInt(x+1,y+1, channel)) ) index |= 0x01;
-	return index;
-}
-
-/**
- * @brief: generate CT histogram for a given rectangle: pixels in [xi yi]-(xa,ya) -- including (xi,yi) but excluding (xa,ya)
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-void Centrist::GenerateHistForOneRect(const NICE::Image & img, const int & xi, const int & xa, const int & yi, const int & ya, NICE::Vector & feature)
-{
-// 	double pixelSum(0.0);
-// 	double pixelSquare(0.0);
-	feature.resize(256);
-	feature.set(0.0);
-	
-	for (int j = yi; j < ya; j++)
-	{
-		for (int i = xi; i < xa; i++)
-		{
-// 			pixelSum += img.getPixelInt(i,j);
-// 			pixelSquare += img.getPixelInt(i,j)*img.getPixelInt(i,j);
-			feature[CensusTransform(img,i,j)]++;
-		}
-	}
-	
-// 	const double size ( (xa-xi)*(ya-yi));
-
-	// normalize histogram to have 0 mean, remove the first and last entry, and normalize to have unit norm
-	double sum(feature.Sum()/256.0);//shift more efficient?
-	
-	// normalize histogram to have 0 mean
-	//but why?
-	feature -= sum;
-	
-	//remove the first and last entry
-	feature[0] = 0.0;
-	feature[255] = 0.0;
-
-	//normalization - here done using unit L2-norm
-	feature.normalizeL2();
-}
-
-/**
- * @brief: generate CT histogram for a given rectangle: pixels in [xi yi]-(xa,ya) -- including (xi,yi) but excluding (xa,ya)
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-void Centrist::GenerateHistForOneRect(const NICE::ColorImage & img, const int & xi, const int & xa, const int & yi, const int & ya, NICE::Vector & feature)
-{
-// 	double pixelSum(0.0);
-// 	double pixelSquare(0.0);
-	int nrChannel (img.channels());
-	feature.resize(256*nrChannel);
-	feature.set(0.0);
-	
-	for (int channel = 0; channel < nrChannel; channel++)
-	{
-		for (int j = yi; j < ya; j++)
-		{
-			for (int i = xi; i < xa; i++)
-			{
-// 				pixelSum += img.getPixelInt(i,j, channel);
-// 				pixelSquare += img.getPixelInt(i,j, channel)*img.getPixelInt(i,j, channel);
-				feature[256*channel+CensusTransform(img,i,j,channel)]++;
-			}
-		}
-	}
-	
-// 	const double size ( (xa-xi)*(ya-yi))
-
-	// normalize histogram to have 0 mean, remove the first and last entry, and normalize to have unit norm
-	double sum(feature.Sum()/256.0);//shift more efficient?
-	
-	// normalize histogram to have 0 mean
-	//but why?
-	feature -= sum;
-	
-	//remove the first and last entry
-	feature[0] = 0.0;
-	feature[255] = 0.0;
-
-	//normalization - here done using unit L2-norm
-	feature.normalizeL2();
-}
-
-/**
- * @brief Computes several CENTRIST descriptors for each of the given positions om a local neighborhood
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-void Centrist::computeDesc( const NICE::Image & img, NICE::VVector & positions, NICE::VVector & descriptors )
-{
-	descriptors.clear();
-	for (NICE::VVector::const_iterator it = positions.begin(); it != positions.end(); it++)
-	{
-		NICE::Vector descriptor;
-		GenerateHistForOneRect(img, (*it)[0]-sizeNeighborhood/2, (*it)[0]+sizeNeighborhood/2, (*it)[1]-sizeNeighborhood/2, (*it)[1]+sizeNeighborhood/2, descriptor);
-		descriptors.push_back(descriptor);
-	}
-}
-
-/**
- * @brief Computes several CENTRIST descriptors for each of the given positions om a local neighborhood
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-void Centrist::computeDesc( const NICE::ColorImage & img, NICE::VVector & positions, NICE::VVector & descriptors )
-{
-	descriptors.clear();
-	for (NICE::VVector::const_iterator it = positions.begin(); it != positions.end(); it++)
-	{
-		NICE::Vector descriptor;
-		GenerateHistForOneRect(img, (*it)[0]-sizeNeighborhood/2, (*it)[0]+sizeNeighborhood/2, (*it)[1]-sizeNeighborhood/2, (*it)[1]+sizeNeighborhood/2, descriptor);
-		descriptors.push_back(descriptor);
-	}
-}
-
-/* public methods*/
-
-/**
- * @brief Default constructor
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-Centrist::Centrist()
-{
-	sizeNeighborhood = 16;
-}
-
-/**
- * @brief Recommended constructor
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-Centrist::Centrist( const Config *conf, const std::string & section )
-{
-	sizeNeighborhood = conf->gI(section, "sizeNeighborhood", 16);
-}
-
-/**
- * @brief Default destructor
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-Centrist::~Centrist()
-{
-}
-
-
-/**
- * @brief Computes several CENTRIST descriptors for each of the given positions on a local neighborhood
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-int Centrist::getDescriptors ( const NICE::Image & img, VVector & positions, VVector & descriptors )
-{
-	computeDesc(img, positions, descriptors);
-	return 0;
-}
-
-/**
- * @brief Computes several CENTRIST descriptors for each of the given positions on a local neighborhood
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-int Centrist::getDescriptors ( const NICE::ColorImage & img, NICE::VVector & positions, NICE::VVector & descriptors)
-{
-	computeDesc(img, positions, descriptors);
-	return 0;
-}
-
-/**
- * @brief Visualizes CENTRIST descriptors, not implemented yet!
- * @author Alexander Lütz
- * @date 12/06/2011
- */
-void Centrist::visualizeFeatures ( NICE::Image & mark,
-				 const VVector & positions,
-				 size_t color ) const
-{
-//     ice::Image mark_ice = ice::NewImg ( mark.width(), 
-// 	mark.height(), 255 );
-//     for ( size_t k = 0 ; k < positions.size() ; k++ )
-//     {
-// 		const NICE::Vector & pos = positions[k];
-// 		ice::Matrix points ( 0, 2 );
-// 		const int size = 6;
-// 		points.Append ( ice::Vector(-size, -size) );
-// 		points.Append ( ice::Vector(-size, size) );
-// 		points.Append ( ice::Vector(size, size) );
-// 		points.Append ( ice::Vector(size, -size) );
-// 
-// 		ice::Trafo tr;
-// 
-// 		tr.Scale ( 0, 0, pos[2] );
-// 		tr.Rotate ( 0, 0, pos[3] );
-// 		tr.Shift ( pos[0], pos[1] );
-// 
-// 		ice::TransformList(tr, points);
-// 
-// 		for ( int j = 0 ; j < points.rows(); j++ )
-// 		{
-// 			if (points[j][0] < 0 ) 
-// 			points[j][0] = 0;
-// 			if (points[j][0] >= mark_ice->xsize) 
-// 			points[j][0] = mark_ice->xsize - 1;
-// 			if (points[j][1] < 0 ) 
-// 			points[j][1] = 0;
-// 			if (points[j][1] >= mark_ice->ysize) 
-// 			points[j][1] = mark_ice->ysize - 1;
-// 		}
-// 		ice::DrawPolygon ( points, color, mark_ice );
-//     }
-// 
-//     for ( unsigned int y = 0 ; y < mark.height(); y++ )
-// 		for ( unsigned int x = 0 ; x < mark.width(); x++ )
-// 			mark.setPixel(x,y, GetVal(mark_ice,x,y));
-}
-

+ 0 - 64
features/localfeatures/Centrist.h~

@@ -1,64 +0,0 @@
-/** 
-* @file Centrist.h
-* @brief Implementation of the Centrist feature published in  "CENTRIST: A Visual Descriptor for Scene Categorization" (PAMI 2011)
-* @author Alexander Lütz
-* @date 12/06/2011
-*/
-#ifndef CENTRISTINCLUDE
-#define CENTRISTINCLUDE
-
-#ifdef NOVISUAL
-#include <vislearning/nice_nonvis.h>
-#else
-#include <vislearning/nice.h>
-#endif
-
-#include "core/vector/VVector.h"
-#include "LocalFeature.h"
-#include "core/basics/Config.h"
-  
-
-namespace OBJREC {
-
-/** interface to CENTRIST implementation*/
-class Centrist : public LocalFeature
-{
-
-    protected:
-		 int sizeNeighborhood;
-		 
-		 int CensusTransform(const NICE::Image & img, const int & x, const int & y);
-		 int CensusTransform(const NICE::ColorImage & img, const int & x, const int & y, const int & channel);
-		 void GenerateHistForOneRect(const NICE::Image & img, const int & xi, const int & xa, const int & yi, const int & ya, NICE::Vector & feature);
-		 void GenerateHistForOneRect(const NICE::ColorImage & img, const int & xi, const int & xa, const int & yi, const int & ya, NICE::Vector & feature);
-		 void computeDesc( const NICE::Image & img, NICE::VVector & positions, NICE::VVector & descriptors );
-		 void computeDesc( const NICE::ColorImage & img, NICE::VVector & positions, NICE::VVector & descriptors );
-
-    public:
-  
-	/** simple constructor */
-	Centrist();
-	/** default constructor */
-	Centrist(const NICE::Config *conf, const std::string & section="CENTRIST");
-      
-	/** simple destructor */
-	virtual ~Centrist();
-
-	// we have 8 neighbors, so the size is always 256 with the given implementation (without spatial levels, ...)
-	/** Beware: multiply this number by the number of channels you use in your color image*/
-	int getDescSize(){return 256;};
-
-	int getDescriptors ( const NICE::Image & img, NICE::VVector & positions, NICE::VVector & descriptors);
-	
-	int getDescriptors ( const NICE::ColorImage & img, NICE::VVector & positions, NICE::VVector & descriptors);
-	
-	void visualizeFeatures ( NICE::Image & mark,
-				 const NICE::VVector & positions,
-				 size_t color ) const;
-    
-};
-
-
-} // namespace
-
-#endif

+ 0 - 193
features/localfeatures/LFColorWeijer.h~

@@ -1,193 +0,0 @@
-/** 
- * @file LFColorWeijer.cpp
- * @brief implementation of the color features mentioned in van de Weijer, J. & Schmid, C. Applying Color Names to Image Description (2007)
- * @author Björn Fröhlich
- * @date 01/28/2010
- */
-#ifndef LFColorWeijerINCLUDE
-#define LFColorWeijerINCLUDE
-
-#include "core/vector/VectorT.h"
-#include "core/vector/MatrixT.h"
-#include "core/image/ImageT.h"
-#include "core/imagedisplay/ImageDisplay.h"
-#include "core/image/MultiChannelImageTb.h"
-
-#include "LocalFeature.h"
-#include "core/basics/Config.h"
-
-
-namespace OBJREC {
-
-/** interface to ColorSande implementation */
-class LFColorWeijer : public LocalFeature
-{
-
-    protected:
-		//! enum for 11 main colors
-		enum 
-		{
-			BLACK = 0,
-			BLUE,
-			BROWN,
-			GREY,
-			GREEN,
-			ORANGE,
-			PINK,
-			PURPLE,
-			RED,
-			WHITE,
-			YELLOW,
-			LASTCOLOR
-		};
-		
-		//! bins for L*, a* and b* chanel of L*a*b*
-		int bin[3];
-
-		//! upper limits for L*, a* and b* chanel of L*a*b*
-		double maxv[3];
-		
-		//! lower limits for L*, a* and b* chanel of L*a*b*
-		double minv[3];
-		
-		//! quantization interval for L*, a* and b* chanel of L*a*b* depending on bin, maxv and minv
-		double interval[3];
-		
-		//! destination of the computed lookuptable
-		std::string tfile;
-		
-		//! lookuptable for the probabilities (4d: colors, L-channel, a-channel, b-channel)
-		std::vector<std::vector<std::vector<std::vector<double> > > > hist;
-		
-		//! configuration file
-		const NICE::Config *conf;
-		
-    public:
-  
-		/** simple constructor */
-		LFColorWeijer( const NICE::Config *c);
-		  
-		/** simple destructor */
-		virtual ~LFColorWeijer();
-		
-		/**
-		 * get the size of the descriptor
-		 * @return size of descriptor
-		 */
-		int getDescSize () const;
-		
-		/**
-		 * get the colorWeijer features
-		 * @param img grayvalue input image
-		 * @param features features (output)
-		 * @param positions position of the features
-		 * @return 
-		 */
-		int getDescriptors ( const NICE::Image & img, NICE::VVector & positions, NICE::VVector & features ) const;
-		
-		/**
-		 * get the colorWeijer features
-		 * @param img color input image
-		 * @param features features (output)
-		 * @param positions given positions of the features
-		 * @return 
-		 */
-		int getDescriptors ( const NICE::ColorImage & img, NICE::VVector & positions, NICE::VVector & features ) const;
-		
-		/**
-		 * visualize the features
-		 * @param mark 
-		 * @param positions 
-		 * @param color 
-		 */
-		void visualizeFeatures ( NICE::Image & mark, const NICE::VVector & positions,	size_t color ) const;
-		
-		/**
-		 * visualize the features
-		 * @param mark 
-		 * @param positions 
-		 * @param color 
-		 */
-		void visualizeFeatures ( NICE::ColorImage & mark, const NICE::VVector & features, const NICE::VVector & position ) const;
-		
-		/**
-		 * visualize the features
-		 * @param cimg 
-		 */
-		void visualizeFeatures ( const NICE::ColorImage & cimg) const;
-		
-		/**
-		 * visualize the features
-		 * @param cimg 
-		 * @param out
-		 */
-		void visualizeFeatures ( const NICE::ColorImage & cimg, NICE::ColorImage & out) const;
-		
-		/**
-		 * save parameters
-		 */
-		void store();
-		
-		
-		/**
-		 * load parameters
-		 */
-		void restore();
-		
-		/**
-		 * smooths the look up table
-		 */
-		void smooth();
-		
-		/**
-		 * normalizes the sum of a 3d histogram to 1
-		 * @param tab 3d histogram
-		 */
-		void normalize(std::vector<std::vector<std::vector<double> > > &tab);
-		
-		/**
-		 * creates a new and empty table
-		 * @return table of the size bin[0]xbin[1]xbin[2]
-		 */
-		std::vector<std::vector<std::vector<double > > > createTable();
-		
-		/**
-		 * finds a colorname in a given string
-		 * @param fn input string
-		 * @return number of the color
-		 */
-		int findColor(std::string &fn);
-		
-		/**
-		 * creates a new Histogram for input image depending on the image mask
-		 * @param cimg input image
-		 * @param hist histogram
-		 * @param mask which pixel should be consider
-		 */
-		void createHist(const NICE::ColorImage &cimg, std::vector<std::vector<std::vector<double> > > &hist, NICE::Image &mask);
-		
-		/**
-		 * train the lookuptable
-		 */
-		void train();
-		
-		
-		/**
-		 * add a 3d table to a 3d table elementwise
-		 * @param dest destination table
-		 * @param src source table
-		 */
-		void add(std::vector<std::vector<std::vector<double> > > &dest, std::vector<std::vector<std::vector<double> > > &src);
-		
-		/**
-		 * transform each pixel of an image
-		 * @param img input image
-		 * @param feats feature vector for each pixel
-		 */
-		void getFeats(const NICE::ColorImage &img, MultiChannelImageT<double> &feats);
-};
-
-
-} // namespace
-
-#endif