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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aabsdiff.cpp

?? 微軟的基于HMM的人臉識別原代碼, 非常經典的說
?? CPP
字號:
/*M///////////////////////////////////////////////////////////////////////////////////////
//
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install,
//  copy or use the software.
//
//
//                        Intel License Agreement
//                For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
//   * Redistribution's of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//
//   * Redistribution's in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//
//   * The name of Intel Corporation may not be used to endorse or promote products
//     derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/

#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <float.h>

#include "CvTest.h"

static char* funcs[] =
{
    "cvAbsDiff",
    "cvAbsDiffS"
};

static char *test_desc = "Test for absolute difference functions";

/* actual parameters */
static int min_img_size, max_img_size;
static int img_size_delta_type, img_size_delta;
static int base_iters;

/* which tests have to run */
static int dt_l = 0, dt_h = 1;

static int init_absdiff_params = 0;

static const int img8u_range = 255;
static const float img32f_range = 1000.f;
static const int img32f_bits = 23;

static void read_absdiff_params( void )
{
    if( !init_absdiff_params )
    {
        int  data_types;

        /* Determine which tests are needed to run */
        trsCaseRead( &data_types,"/a/8u/32f", "a",
            "a - all, 8u - unsigned char, 32f - float" );
        if( data_types != 0 ) dt_l = dt_h = data_types - 1;

        /* read tests params */
        trsiRead( &min_img_size, "3", "Minimal width or height of image" );
        trsiRead( &max_img_size, "1000", "Maximal width or height of image" );
        trsCaseRead( &img_size_delta_type,"/a/m", "m", "a - add, m - multiply" );
        trsiRead( &img_size_delta, "3", "Image size step(factor)" );
        trsiRead( &base_iters, "1000", "Base number of iterations" );

        init_absdiff_params = 1;
    }
}


/* ///////////////////// absdiff_test ///////////////////////// */

static int absdiff_test( void* arg )
{
    const double success_error_level = 1e-6;

    int   param     = (int)arg;
    int   depth     = param;

    int   seed      = atsGetSeed();

    /* position where the maximum error occured */
    int   merr_w = 0, merr_h = 0, merr_iter = 0;

    /* test parameters */
    int     w = 0, h = 0, i = 0;
    double  max_err = 0.;
    //int     code = TRS_OK;

    IplROI       roi;
    IplImage    *src1_img, *src2_img, *dst_img;
    IplImage    *srcfl1_img, *srcfl2_img, *dstfl_img;
    AtsRandState rng_state;

    atsRandInit( &rng_state, 0, 1, seed );

    read_absdiff_params();

    if( !(ATS_RANGE( depth, dt_l, dt_h+1 ))) return TRS_UNDEF;

    depth = depth == 1 ? IPL_DEPTH_32F : IPL_DEPTH_8U;

    src1_img = atsCreateImage( max_img_size, max_img_size, depth, 1, 0 );
    src2_img = atsCreateImage( max_img_size, max_img_size, depth, 1, 0 );
    dst_img = atsCreateImage( max_img_size, max_img_size, depth, 1, 0 );

    srcfl1_img = atsCreateImage( max_img_size, max_img_size, IPL_DEPTH_32F, 1, 0 );
    srcfl2_img = atsCreateImage( max_img_size, max_img_size, IPL_DEPTH_32F, 1, 0 );
    dstfl_img = atsCreateImage( max_img_size, max_img_size, IPL_DEPTH_32F, 1, 0 );

    src1_img->roi = src2_img->roi = dst_img->roi =
    srcfl1_img->roi = srcfl2_img->roi = dstfl_img->roi = &roi;

    roi.coi = 0;
    roi.xOffset = roi.yOffset = 0;

    for( h = min_img_size; h <= max_img_size; )
    {
        for( w = min_img_size; w <= max_img_size; )
        {
            int  denom = (w - min_img_size + 1)*(h - min_img_size + 1);
            int  iters = (base_iters*2 + denom)/(2*denom);

            roi.width = w;
            roi.height = h;

            if( iters < 1 ) iters = 1;

            for( i = 0; i < iters; i++ )
            {
                double err;

                switch( depth )
                {
                case IPL_DEPTH_8U:
                    atsRandSetBounds( &rng_state, 0, img8u_range );
                    break;
                case IPL_DEPTH_32F:
                    atsRandSetBounds( &rng_state, -img32f_range, img32f_range );
                    atsRandSetFloatBits( &rng_state, img32f_bits );
                    break;
                }

                atsFillRandomImageEx( src1_img, &rng_state );
                atsFillRandomImageEx( src2_img, &rng_state );

                atsConvert( src1_img, srcfl1_img );
                atsConvert( src2_img, srcfl2_img );
                
                iplSubtract( srcfl1_img, srcfl2_img, dstfl_img );
                iplAbs( dstfl_img, dstfl_img );

                cvAbsDiff( src1_img, src2_img, dst_img );

                atsConvert( dst_img, srcfl1_img );

                err = iplNorm( srcfl1_img, dstfl_img, IPL_C );

                if( err > max_err )
                {
                    merr_w    = w;
                    merr_h    = h;
                    merr_iter = i;
                    max_err   = err;
                    if( max_err > success_error_level ) goto test_exit;
                }
            }
            ATS_INCREASE( w, img_size_delta_type, img_size_delta );
        } /* end of the loop by w */

        ATS_INCREASE( h, img_size_delta_type, img_size_delta );
    }  /* end of the loop by h */

test_exit:

    src1_img->roi = src2_img->roi = dst_img->roi =
    srcfl1_img->roi = srcfl2_img->roi = dstfl_img->roi = 0;
    
    iplDeallocate( src1_img, IPL_IMAGE_ALL );
    iplDeallocate( src2_img, IPL_IMAGE_ALL );
    iplDeallocate( dst_img, IPL_IMAGE_ALL );

    iplDeallocate( srcfl1_img, IPL_IMAGE_ALL );
    iplDeallocate( srcfl2_img, IPL_IMAGE_ALL );
    iplDeallocate( dstfl_img, IPL_IMAGE_ALL );

    //if( code == TRS_OK )
    {
        trsWrite( ATS_LST, "Max err is %g at w = %d, h = %d, "
                           "iter = %d, seed = %08x",
                           max_err, merr_w, merr_h, merr_iter, seed );

        return max_err <= success_error_level ?
            trsResult( TRS_OK, "No errors" ) :
            trsResult( TRS_FAIL, "Bad accuracy" );
    }
    /*else
    {
        trsWrite( ATS_LST, "Fatal error at w = %d, h = %d, "
                           "iter = %d, seed = %08x",
                           w, h, i, seed );
        return trsResult( TRS_FAIL, "Function returns error code" );
    }*/
}


/* ///////////////////// absdiff_scalar_test ///////////////////////// */

static int absdiff_scalar_test( void* arg )
{
    const double success_error_level = 1e-6;

    int   param     = (int)arg;
    int   depth     = param - 2;

    int   seed      = atsGetSeed();

    /* position where the maximum error occured */
    int   merr_w = 0, merr_h = 0, merr_iter = 0;

    /* test parameters */
    int     w = 0, h = 0, i = 0;
    double  max_err = 0.;
    //int     code = TRS_OK;

    IplROI       roi;
    IplImage    *src_img, *dst_img;
    IplImage    *srcfl_img, *dstfl_img;
    AtsRandState rng_state;

    atsRandInit( &rng_state, 0, 1, seed );

    read_absdiff_params();

    if( !(ATS_RANGE( depth, dt_l, dt_h+1 ))) return TRS_UNDEF;

    depth = depth == 1 ? IPL_DEPTH_32F : IPL_DEPTH_8U;

    src_img = atsCreateImage( max_img_size, max_img_size, depth, 1, 0 );
    dst_img = atsCreateImage( max_img_size, max_img_size, depth, 1, 0 );

    srcfl_img = atsCreateImage( max_img_size, max_img_size, IPL_DEPTH_32F, 1, 0 );
    dstfl_img = atsCreateImage( max_img_size, max_img_size, IPL_DEPTH_32F, 1, 0 );

    src_img->roi = dst_img->roi = srcfl_img->roi = dstfl_img->roi = &roi;

    roi.coi = 0;
    roi.xOffset = roi.yOffset = 0;

    for( h = min_img_size; h <= max_img_size; )
    {
        for( w = min_img_size; w <= max_img_size; )
        {
            int  denom = (w - min_img_size + 1)*(h - min_img_size + 1);
            int  iters = (base_iters*2 + denom)/(2*denom);

            roi.width = w;
            roi.height = h;

            if( iters < 1 ) iters = 1;

            for( i = 0; i < iters; i++ )
            {
                double err;
                double value = 0;

                switch( depth )
                {
                case IPL_DEPTH_8U:
                    atsRandSetBounds( &rng_state, 0, img8u_range );
                    value = atsRand32s( &rng_state );
                    break;
                case IPL_DEPTH_32F:
                    atsRandSetBounds( &rng_state, -img32f_range, img32f_range );
                    atsRandSetFloatBits( &rng_state, img32f_bits );
                    value = atsRand32f( &rng_state );
                    break;
                }

                atsFillRandomImageEx( src_img, &rng_state );
                atsFillRandomImageEx( dst_img, &rng_state );

                atsConvert( src_img, srcfl_img );
                atsConvert( dst_img, dstfl_img );
                
                iplSubtractSFP( srcfl_img, dstfl_img, (float)value, 0 );
                iplAbs( dstfl_img, dstfl_img );

                cvAbsDiffS( src_img, dst_img, value );

                atsConvert( dst_img, srcfl_img );

                err = iplNorm( srcfl_img, dstfl_img, IPL_C );

                if( err > max_err )
                {
                    merr_w    = w;
                    merr_h    = h;
                    merr_iter = i;
                    max_err   = err;
                    if( max_err > success_error_level ) goto test_exit;
                }
            }
            ATS_INCREASE( w, img_size_delta_type, img_size_delta );
        } /* end of the loop by w */

        ATS_INCREASE( h, img_size_delta_type, img_size_delta );
    }  /* end of the loop by h */

test_exit:

    src_img->roi = dst_img->roi = srcfl_img->roi = dstfl_img->roi = 0;
    
    iplDeallocate( src_img, IPL_IMAGE_ALL );
    iplDeallocate( dst_img, IPL_IMAGE_ALL );

    iplDeallocate( srcfl_img, IPL_IMAGE_ALL );
    iplDeallocate( dstfl_img, IPL_IMAGE_ALL );

    //if( code == TRS_OK )
    {
        trsWrite( ATS_LST, "Max err is %g at w = %d, h = %d, "
                           "iter = %d, seed = %08x",
                           max_err, merr_w, merr_h, merr_iter, seed );

        return max_err <= success_error_level ?
            trsResult( TRS_OK, "No errors" ) :
            trsResult( TRS_FAIL, "Bad accuracy" );
    }
    /*else
    {
        trsWrite( ATS_LST, "Fatal error at w = %d, h = %d, "
                           "iter = %d, seed = %08x",
                           w, h, i, seed );
        return trsResult( TRS_FAIL, "Function returns error code" );
    }*/
}


#define ABSDIFF_8UC1      0
#define ABSDIFF_32FC1     1

#define ABSDIFFS_8UC1     2
#define ABSDIFFS_32FC1    3

void InitAAbsDiff( void )
{
    /* Registering test functions */
    trsRegArg( funcs[0], test_desc, atsAlgoClass, absdiff_test, ABSDIFF_8UC1 );
    trsRegArg( funcs[0], test_desc, atsAlgoClass, absdiff_test, ABSDIFF_32FC1 );

    trsRegArg( funcs[1], test_desc, atsAlgoClass, absdiff_scalar_test, ABSDIFFS_8UC1 );
    trsRegArg( funcs[1], test_desc, atsAlgoClass, absdiff_scalar_test, ABSDIFFS_32FC1 );

} /* InitAAbsDiff */

/* End of file. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆欧美日韩一区| 久久先锋影音av| 欧美一级二级三级蜜桃| 2020国产成人综合网| 亚洲国产精品av| 亚洲成av人在线观看| 亚洲狠狠爱一区二区三区| 久久er99精品| 91免费视频网| 69久久夜色精品国产69蝌蚪网| 久久婷婷久久一区二区三区| **欧美大码日韩| 日韩av中文在线观看| 国产999精品久久久久久绿帽| 欧美在线综合视频| 欧美精品一区二区三区久久久| 国产精品免费视频观看| 日韩综合在线视频| 岛国精品在线观看| 欧美日韩免费视频| 欧美国产国产综合| 日本欧美在线看| 91伊人久久大香线蕉| 日韩女优电影在线观看| 日韩毛片一二三区| 激情欧美日韩一区二区| 在线观看av一区| 国产亚洲va综合人人澡精品| 午夜伦理一区二区| 不卡一区二区三区四区| 日韩一卡二卡三卡四卡| 亚洲乱码国产乱码精品精的特点| 久久国产夜色精品鲁鲁99| 在线视频国内自拍亚洲视频| 久久影院午夜片一区| 婷婷久久综合九色综合绿巨人 | 日本高清不卡在线观看| 欧美成人综合网站| 一区二区三区四区在线免费观看| 国产精品影视天天线| 欧美久久一二三四区| 国产精品欧美极品| 精品在线你懂的| 5566中文字幕一区二区电影| 亚洲天堂久久久久久久| 国产成人精品影视| 精品免费国产一区二区三区四区| 亚洲午夜成aⅴ人片| 91蝌蚪国产九色| 国产精品视频观看| 国产一区二区h| 日韩欧美高清一区| 日韩福利视频导航| 欧美视频一区在线| 一卡二卡三卡日韩欧美| 91在线视频播放| 中文成人综合网| 国产成人免费视频精品含羞草妖精| 欧美成人一区二区| 日本午夜一本久久久综合| 欧美三级电影一区| 亚洲美女视频在线| 色中色一区二区| 亚洲精品视频在线观看免费| 成人动漫一区二区| 亚洲国产高清在线| 成人理论电影网| 国产精品久久久久一区二区三区 | 久久精品一区二区三区四区| 久久国产欧美日韩精品| 欧美成人免费网站| 激情图片小说一区| 久久久91精品国产一区二区三区| 久久精品国产亚洲一区二区三区| 日韩三级视频在线观看| 免费不卡在线视频| 日韩欧美123| 激情欧美一区二区| 26uuu国产电影一区二区| 国内国产精品久久| 久久久精品黄色| 国产成人精品影视| 国产精品久久影院| 色噜噜狠狠色综合欧洲selulu | 日本道色综合久久| 一区二区在线观看视频| 一本色道久久综合亚洲91 | 精品视频资源站| 亚洲444eee在线观看| 91精品国产色综合久久不卡电影 | 欧美日韩国产首页在线观看| 亚洲国产精品久久一线不卡| 这里是久久伊人| 精品在线视频一区| 日本一区二区动态图| 91麻豆精品秘密| 午夜欧美电影在线观看| 精品国产一区二区三区av性色| 国产乱码字幕精品高清av | 91论坛在线播放| 亚洲成人动漫一区| 26uuu亚洲| 成人99免费视频| 亚洲chinese男男1069| 日韩一区二区三区四区| 高清成人免费视频| 亚洲综合男人的天堂| 日韩亚洲国产中文字幕欧美| 九色综合国产一区二区三区| 国产精品沙发午睡系列990531| 91高清在线观看| 精品一区二区三区视频| 亚洲色图欧美在线| 日韩丝袜美女视频| 99视频在线观看一区三区| 日韩在线一二三区| 国产视频一区在线观看 | 亚洲午夜一二三区视频| 精品成人免费观看| 9色porny自拍视频一区二区| 日日骚欧美日韩| 国产精品毛片久久久久久| 欧美色欧美亚洲另类二区| 国产在线国偷精品免费看| 亚洲乱码国产乱码精品精的特点| 日韩免费电影网站| 色欧美片视频在线观看| 久久99这里只有精品| 亚洲日本丝袜连裤袜办公室| 欧美一级理论片| 色欧美日韩亚洲| 国产麻豆日韩欧美久久| 亚洲成精国产精品女| 亚洲欧洲成人自拍| 日韩精品一区二| 欧美日韩一级视频| 成人综合在线观看| 免费成人在线影院| 亚洲国产中文字幕| 中文字幕电影一区| 欧美成人精品二区三区99精品| 在线观看网站黄不卡| 不卡大黄网站免费看| 久久精品99久久久| 亚洲在线中文字幕| 国产精品久久久久三级| 精品美女被调教视频大全网站| 精品视频在线免费看| 91免费看视频| 国产69精品久久久久777| 日本不卡一区二区三区| 亚洲激情av在线| 国产精品视频一区二区三区不卡| 日韩精品一区二区三区蜜臀| 欧美性受xxxx| 91亚洲男人天堂| 成人午夜激情片| 国产一区二区三区免费看| 五月激情丁香一区二区三区| 亚洲少妇30p| 亚洲素人一区二区| 国产精品情趣视频| 国产日韩欧美高清| 久久品道一品道久久精品| 日韩欧美黄色影院| 欧美一区二区在线看| 欧美伊人久久久久久久久影院| 一本色道a无线码一区v| 99亚偷拍自图区亚洲| av中文字幕不卡| 成人app在线| 成人久久18免费网站麻豆| 国产高清一区日本| 国产精品一二三| 国产精品一品二品| 国产剧情一区二区三区| 国内不卡的二区三区中文字幕 | 久久久久久久久久看片| 精品少妇一区二区三区日产乱码 | 日韩精品电影在线| 日本在线不卡视频一二三区| 婷婷夜色潮精品综合在线| 亚洲午夜电影在线观看| 亚洲成人av中文| 日韩不卡免费视频| 日韩av一区二区三区四区| 青青草原综合久久大伊人精品优势| 丝袜美腿一区二区三区| 喷白浆一区二区| 久久精品国产**网站演员| 经典三级视频一区| 国产乱码精品一区二区三区忘忧草 | 午夜精品123| 五月激情综合网| 蜜臀久久99精品久久久久久9| 久久精品国产77777蜜臀| 国产美女精品人人做人人爽| 丰满放荡岳乱妇91ww| 91视频观看免费| 欧美三级视频在线观看|