Common.h
上传用户:lijia5631
上传日期:2008-11-10
资源大小:1214k
文件大小:5k
源码类别:

视频捕捉/采集

开发平台:

MultiPlatform

  1. /**
  2.   * HandVu - a library for computer vision-based hand gesture
  3.   * recognition.
  4.   * Copyright (C) 2004 Mathias Kolsch, matz@cs.ucsb.edu
  5.   *
  6.   * This program is free software; you can redistribute it and/or
  7.   * modify it under the terms of the GNU General Public License
  8.   * as published by the Free Software Foundation; either version 2
  9.   * of the License, or (at your option) any later version.
  10.   *
  11.   * This program is distributed in the hope that it will be useful,
  12.   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.   * GNU General Public License for more details.
  15.   *
  16.   * You should have received a copy of the GNU General Public License
  17.   * along with this program; if not, write to the Free Software
  18.   * Foundation, Inc., 59 Temple Place - Suite 330, 
  19.   * Boston, MA  02111-1307, USA.
  20.   *
  21.   * $Id: Common.h,v 1.24 2006/01/08 19:32:11 matz Exp $
  22. **/
  23. #if !defined(__COMMON_H__INCLUDED_)
  24. #define __COMMON_H__INCLUDED_
  25. #if defined(WIN32)
  26. // for Windows only: include all external headers here, they'll
  27. // be put in the precompiled header file with quite a bit of
  28. // compilation speedup.
  29. // for all other platforms, however, include only what's necessary
  30. // in each .cpp or maybe .h file
  31. #define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
  32. #if _MSC_VER > 1000
  33. #pragma once
  34. #endif // _MSC_VER > 1000
  35. // Visual C++ doesn't understand exception specifications of functions:
  36. #if defined(_MSC_VER) && _MSC_VER<1400
  37. //#define throw(x) /* throw(x) */
  38. #endif
  39. #pragma warning (disable:4312)
  40. #include <cv.h>
  41. #pragma warning (default:4312)
  42. #include <cvaux.h>
  43. #include <vector>
  44. #include <math.h>
  45. #include <float.h>
  46. #include <fstream>
  47. #include <string>
  48. #include <ostream>
  49. #pragma warning (disable: 4786)
  50. #pragma warning (disable: 4702)
  51. #include <map>
  52. #include <list>
  53. #pragma warning (default: 4786)
  54. #pragma warning (default: 4702)
  55. using namespace std;
  56. #include <cubicles.h>
  57. #include "Rect.h"
  58. #include <malloc.h>
  59. #define alloca _alloca
  60. #define isnan _isnan
  61. #endif // defined(WIN32)
  62. /* for all platforms */
  63. #if defined HAVE_CONFIG_H
  64. #include "../hvconfig.h"
  65. #endif
  66. #include <stdio.h>
  67. #ifdef DEBUG
  68. #ifdef ASSERT
  69. #undef ASSERT
  70. #endif
  71. #define ASSERT(x) 
  72.   if (!(x)) { 
  73.     printf("%s, line %d: assertion (%s) failedn", __FILE__, __LINE__, #x); 
  74.     throw HVException("assertion failed"); 
  75.   }
  76. #else  // DEBUG
  77. #define ASSERT(x)  ((void)0)
  78. #endif
  79. extern int g_verbose; // defined in IntegralFeatures.cpp
  80. extern FILE* g_ostream; // defined in IntegralFeatures.cpp
  81. #if defined(DEBUG)
  82. #define VERBOSE0(level, fmt) if (g_verbose>=level) {fprintf(g_ostream, fmt); fprintf(g_ostream, "n"); fflush(g_ostream);}
  83. #define VERBOSE1(level, fmt,x) if (g_verbose>=level) {fprintf(g_ostream, fmt,x); fprintf(g_ostream, "n"); fflush(g_ostream);}
  84. #define VERBOSE2(level, fmt,x,y) if (g_verbose>=level) {fprintf(g_ostream, fmt,x,y); fprintf(g_ostream, "n"); fflush(g_ostream);}
  85. #define VERBOSE3(level, fmt,x,y,z) if (g_verbose>=level) {fprintf(g_ostream, fmt,x,y,z); fprintf(g_ostream, "n"); fflush(g_ostream);}
  86. #define VERBOSE4(level, fmt,x,y,z,k) if (g_verbose>=level) {fprintf(g_ostream, fmt,x,y,z,k); fprintf(g_ostream, "n"); fflush(g_ostream);}
  87. #define VERBOSE5(level, fmt,x,y,z,k,l) if (g_verbose>=level) {fprintf(g_ostream, fmt,x,y,z,k,l); fprintf(g_ostream, "n"); fflush(g_ostream);}
  88. #define VERBOSE6(level, fmt,x,y,z,k,l,m) if (g_verbose>=level) {fprintf(g_ostream, fmt,x,y,z,k,l,m); fprintf(g_ostream, "n"); fflush(g_ostream);}
  89. #else // DEBUG
  90. #define VERBOSE0(level, fmt) {}
  91. #define VERBOSE1(level, fmt,x) {}
  92. #define VERBOSE2(level, fmt,x,y) {}
  93. #define VERBOSE3(level, fmt,x,y,z) {}
  94. #define VERBOSE4(level, fmt,x,y,z,k) {}
  95. #define VERBOSE5(level, fmt,x,y,z,k,l) {}
  96. #define VERBOSE6(level, fmt,x,y,z,k,l,m) {}
  97. #endif // DEBUG
  98. #define HV_CONDUCTOR_VERSION_1_3_STRING "Integration-Templates VisionConductor file, version 1.3"
  99. #define HV_CONDUCTOR_VERSION_1_4_STRING "Integration-Templates VisionConductor file, version 1.4"
  100. #define HV_CONDUCTOR_VERSION_1_5_STRING "HandVu VisionConductor file, version 1.5"
  101. #define HV_MASK_VERSION_1_0_STRING "HandVu Mask file, version 1.0"
  102. // define the pi constant if needed
  103. #ifndef M_PI
  104. #define M_PI 3.141592653589793  
  105. //double pi = 4.0*atan(1.0);
  106. #endif /* M_PI */
  107. #ifdef WIN32
  108. // in cubicles/StringUtils.cpp
  109. string ConvertPathToWindows(const string& filename);
  110. string ConvertPathToStandard(const string& win_filename);
  111. void ReplaceAll(string& mangle, const string what, const string with);
  112. #else
  113. #define ConvertPathToWindows(x) (x)
  114. #define ConvertPathToStandard(x) (x)
  115. #endif // WIN32
  116. typedef unsigned char BYTE;
  117. typedef struct tagBGRtriple {
  118.     BYTE blue;
  119.     BYTE green; 
  120.     BYTE red;
  121. } ColorBGR; 
  122. #endif // __COMMON_H__INCLUDED_