From 74300f5f42c0ffeb59f50663cdc46512ab46c469 Mon Sep 17 00:00:00 2001 From: Maria Dimashova Date: Tue, 27 Jul 2010 13:28:21 +0000 Subject: [PATCH] fixed compile errors on VS2008 --- .../include/opencv2/features2d/features2d.hpp | 40 ++++++------ modules/features2d/src/calonder.cpp | 64 +++++++++---------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/modules/features2d/include/opencv2/features2d/features2d.hpp b/modules/features2d/include/opencv2/features2d/features2d.hpp index 95217a626..ef2d6ecf4 100644 --- a/modules/features2d/include/opencv2/features2d/features2d.hpp +++ b/modules/features2d/include/opencv2/features2d/features2d.hpp @@ -628,12 +628,12 @@ class CV_EXPORTS RandomizedTree public: friend class RTreeClassifier; - static const int PATCH_SIZE = 32; + static const uchar PATCH_SIZE = 32; static const int DEFAULT_DEPTH = 9; static const int DEFAULT_VIEWS = 5000; static const size_t DEFAULT_REDUCED_NUM_DIM = 176; - static const float LOWER_QUANT_PERC = .03f; - static const float UPPER_QUANT_PERC = .92f; + static float GET_LOWER_QUANT_PERC() { return .03f; } + static float GET_UPPER_QUANT_PERC() { return .92f; } RandomizedTree(); ~RandomizedTree(); @@ -646,13 +646,13 @@ public: // following two funcs are EXPERIMENTAL (do not use unless you know exactly what you do) static void quantizeVector(float *vec, int dim, int N, float bnds[2], int clamp_mode=0); - static void quantizeVector(float *src, int dim, int N, float bnds[2], uint8_t *dst); + static void quantizeVector(float *src, int dim, int N, float bnds[2], uchar *dst); // patch_data must be a 32x32 array (no row padding) float* getPosterior(uchar* patch_data); const float* getPosterior(uchar* patch_data) const; - uint8_t* getPosterior2(uchar* patch_data); - const uint8_t* getPosterior2(uchar* patch_data) const; + uchar* getPosterior2(uchar* patch_data); + const uchar* getPosterior2(uchar* patch_data) const; void read(const char* file_name, int num_quant_bits); void read(std::istream &is, int num_quant_bits); @@ -677,7 +677,7 @@ private: int num_leaves_; std::vector nodes_; float **posteriors_; // 16-bytes aligned posteriors - uint8_t **posteriors2_; // 16-bytes aligned posteriors + uchar **posteriors2_; // 16-bytes aligned posteriors std::vector leaf_counts_; void createNodes(int num_nodes, RNG &rng); @@ -689,8 +689,8 @@ private: int getIndex(uchar* patch_data) const; inline float* getPosteriorByIndex(int index); inline const float* getPosteriorByIndex(int index) const; - inline uint8_t* getPosteriorByIndex2(int index); - inline const uint8_t* getPosteriorByIndex2(int index) const; + inline uchar* getPosteriorByIndex2(int index); + inline const uchar* getPosteriorByIndex2(int index) const; //void makeRandomMeasMatrix(float *cs_phi, PHI_DISTR_TYPE dt, size_t reduced_num_dim); void convertPosteriorsToChar(); void makePosteriors2(int num_quant_bits); @@ -714,12 +714,12 @@ inline const float* RandomizedTree::getPosteriorByIndex(int index) const return posteriors_[index]; } -inline uint8_t* RandomizedTree::getPosteriorByIndex2(int index) +inline uchar* RandomizedTree::getPosteriorByIndex2(int index) { - return const_cast(const_cast(this)->getPosteriorByIndex2(index)); + return const_cast(const_cast(this)->getPosteriorByIndex2(index)); } -inline const uint8_t* RandomizedTree::getPosteriorByIndex2(int index) const +inline const uchar* RandomizedTree::getPosteriorByIndex2(int index) const { return posteriors2_[index]; } @@ -766,16 +766,16 @@ public: size_t reduced_num_dim = RandomizedTree::DEFAULT_REDUCED_NUM_DIM, int num_quant_bits = DEFAULT_NUM_QUANT_BITS); - // sig must point to a memory block of at least classes()*sizeof(float|uint8_t) bytes - void getSignature(IplImage *patch, uint8_t *sig) const; + // sig must point to a memory block of at least classes()*sizeof(float|uchar) bytes + void getSignature(IplImage *patch, uchar *sig) const; void getSignature(IplImage *patch, float *sig) const; void getSparseSignature(IplImage *patch, float *sig, float thresh) const; // TODO: deprecated in favor of getSignature overload, remove void getFloatSignature(IplImage *patch, float *sig) const { getSignature(patch, sig); } static int countNonZeroElements(float *vec, int n, double tol=1e-10); - static inline void safeSignatureAlloc(uint8_t **sig, int num_sig=1, int sig_len=176); - static inline uint8_t* safeSignatureAlloc(int num_sig=1, int sig_len=176); + static inline void safeSignatureAlloc(uchar **sig, int num_sig=1, int sig_len=176); + static inline uchar* safeSignatureAlloc(int num_sig=1, int sig_len=176); inline int classes() const { return classes_; } inline int original_num_classes() const { return original_num_classes_; } @@ -799,8 +799,8 @@ public: private: int classes_; int num_quant_bits_; - mutable uint8_t **posteriors_; - mutable uint16_t *ptemp_; + mutable uchar **posteriors_; + mutable unsigned short *ptemp_; int original_num_classes_; bool keep_floats_; }; @@ -1584,11 +1584,11 @@ void CalonderDescriptorExtractor::compute( const cv::Mat& image, } template -void CalonderDescriptorExtractor::read( const FileNode &fn ) +void CalonderDescriptorExtractor::read( const FileNode& ) {} template -void CalonderDescriptorExtractor::write( FileStorage &fs ) const +void CalonderDescriptorExtractor::write( FileStorage&s ) const {} CV_EXPORTS Ptr createDescriptorExtractor( const string& descriptorExtractorType ); diff --git a/modules/features2d/src/calonder.cpp b/modules/features2d/src/calonder.cpp index 59d17fadf..abea8ad4a 100644 --- a/modules/features2d/src/calonder.cpp +++ b/modules/features2d/src/calonder.cpp @@ -105,18 +105,18 @@ float* CSMatrixGenerator::getCSMatrix(int m, int n, PHI_DISTR_TYPE dt) if (dt == PDT_GAUSS) { float par = (float)(1./m); for (int i=0; i(const_cast(this)->getPosterior2(patch_data)); + return const_cast(const_cast(this)->getPosterior2(patch_data)); } -const uint8_t* RandomizedTree::getPosterior2(uchar* patch_data) const +const uchar* RandomizedTree::getPosterior2(uchar* patch_data) const { return getPosteriorByIndex2( getIndex(patch_data) ); } @@ -559,13 +559,13 @@ void RandomizedTree::quantizeVector(float *vec, int dim, int N, float bnds[2], i } -void RandomizedTree::quantizeVector(float *vec, int dim, int N, float bnds[2], uint8_t *dst) +void RandomizedTree::quantizeVector(float *vec, int dim, int N, float bnds[2], uchar *dst) { int map_bnd[2] = {0, N}; // bounds of quantized target interval we're mapping to int tmp; for (int k=0; kN) ? N : tmp)); + *dst = (uchar)((tmp<0) ? 0 : ((tmp>N) ? N : tmp)); ++vec; ++dst; } @@ -644,7 +644,7 @@ void RandomizedTree::savePosteriors2(std::string url, bool append) { std::ofstream file(url.c_str(), (append?std::ios::app:std::ios::out)); for (int i=0; i(tree_it->getPosterior2(patch_data)); + *pp = const_cast(tree_it->getPosterior2(patch_data)); pp = posteriors_; #if 1 @@ -808,19 +808,19 @@ void RTreeClassifier::getSignature(IplImage* patch, uint8_t *sig) const static bool warned = false; memset((void*)sig, 0, classes_ * sizeof(sig[0])); - uint16_t *sig16 = new uint16_t[classes_]; // TODO: make member, no alloc here + unsigned short *sig16 = new unsigned short[classes_]; // TODO: make member, no alloc here memset((void*)sig16, 0, classes_ * sizeof(sig16[0])); for (tree_it = trees_.begin(); tree_it != trees_.end(); ++tree_it, pp++) addVec(classes_, sig16, *pp, sig16); - // squeeze signatures into an uint8_t + // squeeze signatures into an uchar const bool full_shifting = true; int shift; if (full_shifting) { float num_add_bits_f = log((float)trees_.size())/log(2.f); // # additional bits required due to summation int num_add_bits = int(num_add_bits_f); if (num_add_bits_f != float(num_add_bits)) ++num_add_bits; - shift = num_quant_bits_ + num_add_bits - 8*sizeof(uint8_t); + shift = num_quant_bits_ + num_add_bits - 8*sizeof(uchar); //shift = num_quant_bits_ + num_add_bits - 2; //shift = 6; if (shift>0) @@ -959,7 +959,7 @@ float RTreeClassifier::countZeroElements() for (int i=0; i<(int)trees_.size(); ++i) for (int k=0; k<(int)trees_[i].num_leaves_; ++k) { float *p = trees_[i].getPosteriorByIndex(k); - uint8_t *p2 = trees_[i].getPosteriorByIndex2(k); + uchar *p2 = trees_[i].getPosteriorByIndex2(k); assert(p); assert(p2); for (int j=0; j