亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ats.h

?? 微軟的基于HMM的人臉識別原代碼, 非常經(jīng)典的說
?? H
?? 第 1 頁 / 共 2 頁
字號:
                       long lLen,
                       double dbAcc);
/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:    atsCompare1Db, atsCompare1Dc, atsCompare1Dfl
//    Purpose:
//      Comparing two 1D array and writing results to SUM & LST files
//    Context:
//    Parameters:
//      ArrayAct - actual array
//      ArrayExp - expected array
//      lLen     - lenght of this arrays
//      Tol      - tolerable limit
//    Returns:
//      Number of differents elements
//    Notes:
//F*/
long atsCompare1Db(  uchar* ArrayAct, uchar* ArrayExp, long  lLen, int    Tol );
long atsCompare1Dc(  char*  ArrayAct, char*  ArrayExp, long  lLen, int    Tol );
long atsCompare1Dfl( float* ArrayAct, float* ArrayExp, long  lLen, double Tol );


/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:    atsFindFirstErr
//    Purpose:
//      Finds first point in the ROI where the images differs much
//    Context:
//    Parameters:
//      imgA - first image
//      imgB - second image
//      eps  - maximal allowed difference between images
//    Returns:
//      First "bad" point coordinates (they are counted from ROI origin).
//F*/
CvPoint  atsFindFirstErr( IplImage* imgA, IplImage* imgB, double eps );

#ifndef WIN32
#define __inline static
#endif

/* Compare two angles in (0..360) */
__inline double atsCompareAngles( double angle1, double angle2 )
{
    double err = fabs(angle1 - angle2);
    double err1 = fabs(err - 360);
    return err < err1 ? err : err1;
}

/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:    ats1flInitGrad
//    Purpose:
//      Initialazing float array by gradient randomize value (every previous
//      value least next value)
//    Context:
//    Parameters:
//      Min  - minimal bound
//      Max  - maximum bound
//      pDst - destination array
//      lLen - size of array
//    Returns:
//    Notes:
//F*/
void ats1flInitGrad( double Min, double Max, float* pDst, long lLen );


/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:    ataGetTickCount
//    Purpose: Returns the number of processor tics from turn on the processor
//    Context:
//    Parameters:
//    Returns:
//    Notes:
//F*/
#pragma warning(disable : 4035) /* conditional expression is constant    */
                                /* for no warnings in _ASSERT            */
__inline int64 atsGetTickCount()
{
#ifdef WIN32
    __asm{
        _emit 0fh;
        _emit 31h;
    }
#else
    __asm("rdtsc\n\r");
#endif
}
#pragma warning(once : 4035) /* conditional expression is constant    */
                             /* for no warnings in _ASSERT            */

__inline int atsRound( double val )
{
    static const int magic = 0x59C00000;
    double temp = (val + 1e-7) + *((float*)&magic);
    return *((int*)&temp);
}

/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:      atsTimerStart
//    Purpose:   Setting privileges level for task highest
//    Context:   
//    Parameters:
//    Returns:   
//    Notes:     
//F*/
void atsTimerStart( int timer );

/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:      atsTimerStop
//    Purpose:   Cleaning privileges level for task highest
//    Context:   
//    Parameters:
//    Returns:   
//    Notes:     
//F*/
void atsTimerStop( int timer );


extern char* atsTimingClass;  /* string "Timing" */
extern char* atsAlgoClass;    /* string "Algorithm" */
extern int   atsCPUFreq;      /* CPU frequency (MHz) */

#define  ATS_TICS_TO_USECS(tics)    (((double)(tics))/atsCPUFreq)

/******************************************************************************/
/*                     Extended random number generation                      */
/******************************************************************************/

typedef struct
{
    unsigned  seed;
    int       ia, ib;  /* for integer random numbers */
    float     fa, fb;  /* for float random numbers */
    int       shift;   /* if (upper - lower) is power of two */
    int       mask;    /* float mask */
} AtsRandState;

unsigned  atsGetSeed( void );  /* get seed using processor tick counter */

/* will generate random numbers in [lower,upper) */
void  atsRandInit( AtsRandState* state, double lower, double upper, unsigned seed );
void  atsRandSetBounds( AtsRandState* state, double lower, double upper );
void  atsRandSetFloatBits( AtsRandState* state, int bits );
float atsRand32f( AtsRandState* state );
void  atsbRand32f( AtsRandState* state, float* vect, int len );
int   atsRand32s( AtsRandState* state );
void  atsbRand32s( AtsRandState* state, int* vect, int len );
void  atsbRand16s( AtsRandState* state, short* vect, int len );
void  atsbRand8u( AtsRandState* state, uchar* vect, int len );
void  atsbRand8s( AtsRandState* state, char* vect, int len );
void  atsbRand64d( AtsRandState* state, double* vect, int len );

/* simply returns seed */
int   atsRandPlain32s( AtsRandState* state );
/* return float: 0..1 */
float atsRandPlane32f( AtsRandState* state );

int   atsIsNaN( double x );

/******************************************************************************/
/*                                Data input/output                           */
/******************************************************************************/

float*  atsReadMatrix( const char* filename, int* m, int* n );
void    atsWriteMatrix( const char* filename, int m, int n, float* data );


/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:      atsInitModuleTestData
//    Purpose:   Init system path to test data
//    Context:   
//    Parameters:
//              module           - path to module (argv[0])
//              path_from_module - path from module
//    Returns:   
//    Notes:     
//F*/
void atsInitModuleTestData( char* module, char* path_from_module );

/*F///////////////////////////////////////////////////////////////////////////////////////
//    Name:      atsGetTestDataPath
//    Purpose:   Init buffer by path to test data file
//    Context:   
//    Parameters:
//              buffer    - buffer to init
//              folder    - test data folder (may be NULL)
//              filename  - data file (may be NULL)
//              extention - file extention (may be NULL)
//    Returns:
//              returns pointer to buffer
//    Notes:     
//F*/
char* atsGetTestDataPath( char* buffer, char* folder, char* filename, char* extention );


/******************************************************************************/
/*                                 Defines                                    */
/******************************************************************************/

#define ATS_SWAP( a, b, temp )  ((temp) = (a), (a) = (b), (b) = temp)
#define ATS_RANGE( x, a, b )  ((a) <= (x) && (x) < (b))

/* min & max without jumps */
#define ATS_MIN(a, b)  ((a) ^ (((a)^(b)) & (((a) < (b)) - 1)))
#define ATS_MAX(a, b)  ((a) ^ (((a)^(b)) & (((a) > (b)) - 1)))

/* Converts float to 2-complement representation for integer comparing */
#define ATS_TOGGLE_FLT(x)  (((x)&0x7fffffff)^(((int)(x))>>31))

#define ATS_DIM(a)         (sizeof(a)/sizeof((a)[0]))


/* Increases the <value> by adding or multiplying by the <delta> */
#define ATS_INCREASE( value, delta_type, delta ) \
    ((value) = (delta_type) == 0 ? (value)+(delta) : (value)*(delta))


#define ATS_TIC_MAX  0x7fffffffffffffffI64

#define ATS_START_TIMING() int64 temp = atsGetTickCount();
#define ATS_END_TIMING()   temp = atsGetTickCount() - temp; tics = ATS_MIN( tics, temp );

#define ATS_MEASURE( act ) \
    ATS_START_TIMING()     \
    (act);                 \
    ATS_END_TIMING()

#define ATS_COOLMEASURE(func)                       \
{                                                   \
    int i,j;                                        \
    int64 time_min = 0;                           \
                                                    \
    atsTimerStart( 0 );                             \
	for(j=0;j<10;j++)                              \
    {                                               \
		int64 temp = atsGetTickCount();           \
		for(i=0;i<10;i++) func;                     \
		temp = atsGetTickCount() - temp;            \
		if(!time_min) time_min = temp;              \
		else time_min = ATS_MIN( time_min, temp );  \
	}                                               \
    atsTimerStop( 0 );                              \
                                                    \
    tics = (time_min) / 10;                         \
}


#undef NULL
#define NULL 0

#define ATS_CON TW_CON | TW_RUN | TW_DEBUG | TW_RERUN
#define ATS_LST TW_LST | TW_RUN | TW_DEBUG | TW_RERUN
#define ATS_SUM TW_SUM | TW_RUN | TW_DEBUG | TW_RERUN

#define USECS 1000000
#define CPU   1000000


#ifdef __cplusplus
}
#endif



#endif /* _ATS_H_ */

/* End of file. */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美另类小说| 国产精品丝袜在线| 欧美午夜在线观看| 成人一级视频在线观看| 亚洲成av人片一区二区梦乃| 国产精品久99| 国产人成亚洲第一网站在线播放 | 99re这里只有精品首页| 国产麻豆精品在线| 国产一区二区在线影院| 日韩电影在线观看电影| 亚洲不卡av一区二区三区| 一区二区三区欧美久久| 日韩毛片视频在线看| 日韩久久免费av| 一区二区三区在线视频观看58| 中文成人av在线| 亚洲男女毛片无遮挡| 亚洲福利视频导航| 亚洲www啪成人一区二区麻豆| 亚洲国产综合91精品麻豆| 伊人色综合久久天天人手人婷| 亚洲欧美日韩国产一区二区三区| 国产精品视频一二| 国产精品精品国产色婷婷| 国产精品久久久久久久久久免费看| 久久九九影视网| 国产精品国产三级国产三级人妇| 久久色.com| 7777精品伊人久久久大香线蕉完整版| 欧美在线观看视频在线| 欧美日韩二区三区| 欧美精品一区二| 国产精品人人做人人爽人人添| 国产大片一区二区| www.成人在线| 欧美成人免费网站| 亚洲色欲色欲www| 亚洲大片免费看| 国产曰批免费观看久久久| 91麻豆蜜桃一区二区三区| 日韩一区二区免费视频| 国产精品成人免费在线| 日韩不卡一区二区| av爱爱亚洲一区| 久久这里只有精品首页| 亚洲国产欧美在线| 日韩欧美亚洲国产精品字幕久久久 | 丰满少妇久久久久久久| 欧美乱熟臀69xxxxxx| 中文字幕一区二| 国产成人在线视频免费播放| 91精品蜜臀在线一区尤物| 一区二区免费在线播放| 欧美一级艳片视频免费观看| 国产精品久久久久久久久久免费看 | 欧美日韩激情一区二区三区| 亚洲私人影院在线观看| 不卡在线视频中文字幕| 国产三级精品三级| 国产精品一区二区在线播放| 日韩免费视频一区二区| 男人操女人的视频在线观看欧美 | 亚洲欧洲av色图| 欧美怡红院视频| 亚洲v精品v日韩v欧美v专区| 在线不卡中文字幕| 看电视剧不卡顿的网站| 精品免费视频.| 国产成人日日夜夜| 国产精品久久久久久久久图文区 | 亚洲免费观看在线观看| 99re热视频这里只精品| 国产精品久久看| 94-欧美-setu| 亚洲成年人影院| 日韩欧美高清一区| 成人网在线播放| 亚洲第一二三四区| 日韩欧美不卡在线观看视频| 国产福利精品导航| 亚洲欧洲日韩av| 欧美sm极限捆绑bd| av电影在线观看一区| 日韩精品一二三四| 欧美激情中文字幕| 欧美精品日韩一区| 波多野结衣亚洲| 久久成人久久爱| 一区二区不卡在线视频 午夜欧美不卡在 | 日韩精品一区在线观看| 成人app下载| 男人操女人的视频在线观看欧美| 国产精品白丝在线| 久久夜色精品国产欧美乱极品| 不卡视频一二三| 九色|91porny| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 精品综合久久久久久8888| 亚洲精品视频免费观看| 国产精品视频一二三| 91精品国产aⅴ一区二区| 91麻豆6部合集magnet| 成人精品鲁一区一区二区| 免费欧美高清视频| 午夜电影网一区| 亚洲一区成人在线| 亚洲午夜激情网站| 亚洲欧美日韩久久| 国产精品不卡视频| 国产精品久久久久aaaa樱花| 国产欧美日韩另类视频免费观看| 精品国产伦一区二区三区观看体验 | 国产99久久久久久免费看农村| 日本成人超碰在线观看| 亚洲成a人片综合在线| 亚洲一区二区三区不卡国产欧美| 亚洲欧美乱综合| 一级中文字幕一区二区| 一区二区三区四区乱视频| 中文字幕字幕中文在线中不卡视频| 久久久国产一区二区三区四区小说| 日韩色视频在线观看| 久久综合av免费| 久久夜色精品国产噜噜av| 久久精品一区二区三区不卡牛牛 | 亚洲私人影院在线观看| 亚洲成av人片在线| 美脚の诱脚舐め脚责91| 国产精品一级黄| 91传媒视频在线播放| 欧美日韩免费在线视频| 日韩精品一区二区三区中文不卡| 久久婷婷成人综合色| 亚洲精品国产成人久久av盗摄| 亚洲午夜精品网| 国产精品一区二区在线观看不卡| 99r国产精品| 精品国产在天天线2019| 国产精品色婷婷| 蜜乳av一区二区| 99精品国产视频| 精品国产制服丝袜高跟| 亚洲福利一区二区| 丁香婷婷综合五月| 欧美一级片免费看| 亚洲精品一二三| 国产盗摄一区二区| 欧美一区二区三区啪啪| 亚洲免费av在线| 成人的网站免费观看| www激情久久| 美女被吸乳得到大胸91| 欧美午夜精品久久久| 日本一区二区动态图| 国内一区二区视频| 精品国产欧美一区二区| 男男视频亚洲欧美| 欧美久久久久久蜜桃| 一区二区三区不卡在线观看| 不卡一区二区在线| 国产精品色哟哟网站| 成人污视频在线观看| 国产精品女人毛片| 成人av动漫在线| 亚洲欧美在线视频| 97精品国产97久久久久久久久久久久| 久久综合丝袜日本网| 国产一区二区三区在线观看免费 | 美女一区二区三区在线观看| 欧美精选一区二区| 天天操天天干天天综合网| 69堂亚洲精品首页| 久久99国产精品麻豆| 国产清纯白嫩初高生在线观看91| 国产精品18久久久久久久久| 欧美激情在线观看视频免费| 亚洲欧美日本韩国| 成人动漫在线一区| 精品国产三级电影在线观看| 韩国视频一区二区| 国产欧美日韩视频一区二区 | 欧美夫妻性生活| 国产一区二区免费视频| 国产日韩精品久久久| 91蝌蚪porny成人天涯| 亚洲国产精品久久久久婷婷884| 欧美日韩国产大片| 国产在线一区二区| 亚洲精品videosex极品| 精品免费国产一区二区三区四区| 成人国产精品视频| 日本一区中文字幕| 国产精品国产三级国产三级人妇 | 青青草成人在线观看| 欧美日韩精品欧美日韩精品一| 久久99久久99精品免视看婷婷| 日本一区免费视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日韩av电影免费观看高清完整版|