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

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

?? cvaccum.cpp

?? 將OpenCV移植到DSP上
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

    if( !mask )
    {
        CvFunc2D_2A func = (CvFunc2D_2A)acc_tab.fn_2d[CV_MAT_DEPTH(type)];

        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );

        size.width *= CV_MAT_CN(type);

        if( CV_IS_MAT_CONT( mat->type & sum->type ))
        {
            size.width *= size.height;
            mat_step = sum_step = CV_STUB_STEP;;
            size.height = 1;
        }

        IPPI_CALL( func( mat->data.ptr, mat_step, sum->data.ptr, sum_step, size ));
    }
    else
    {
        CvFunc2D_3A func = (CvFunc2D_3A)accmask_tab.fn_2d[type];

        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );

        CV_CALL( mask = cvGetMat( mask, &maskstub ));

        if( !CV_IS_MASK_ARR( mask ))
            CV_ERROR( CV_StsBadMask, "" );

        if( !CV_ARE_SIZES_EQ( mat, mask ))
            CV_ERROR( CV_StsUnmatchedSizes, "" );            

        mask_step = mask->step;

        if( CV_IS_MAT_CONT( mat->type & sum->type & mask->type ))
        {
            size.width *= size.height;
            mat_step = sum_step = mask_step = CV_STUB_STEP;
            size.height = 1;
        }

        IPPI_CALL( func( mat->data.ptr, mat_step, mask->data.ptr, mask_step,
                         sum->data.ptr, sum_step, size ));
    }

    __END__;
}


CV_IMPL void
cvMultiplyAcc( const void* arrA, const void* arrB,
               void* acc, const void* maskarr )
{
    static CvFuncTable acc_tab;
    static CvBigFuncTable accmask_tab;
    static int inittab = 0;
    
    CV_FUNCNAME( "cvMultiplyAcc" );

    __BEGIN__;

    int coi1, coi2, coi3;
    int type;
    int mat1_step, mat2_step, sum_step, mask_step = 0;
    CvSize size;
    CvMat stub1, *mat1 = (CvMat*)arrA;
    CvMat stub2, *mat2 = (CvMat*)arrB;
    CvMat sumstub, *sum = (CvMat*)acc;
    CvMat maskstub, *mask = (CvMat*)maskarr;

    if( !inittab )
    {
        icvInitAddProductTable( &acc_tab, &accmask_tab );
        inittab = 1;
    }

    CV_CALL( mat1 = cvGetMat( mat1, &stub1, &coi1 ));
    CV_CALL( mat2 = cvGetMat( mat2, &stub2, &coi2 ));
    CV_CALL( sum = cvGetMat( sum, &sumstub, &coi3 ));

    if( coi1 != 0 || coi2 != 0 || coi3 != 0 )
        CV_ERROR( CV_BadCOI, "" );

    if( !CV_ARE_CNS_EQ( mat1, mat2 ) || !CV_ARE_CNS_EQ( mat1, sum ))
        CV_ERROR( CV_StsUnmatchedFormats, "" );

    if( CV_MAT_DEPTH( sum->type ) != CV_32F )
        CV_ERROR( CV_BadDepth, "" );

    if( !CV_ARE_SIZES_EQ( mat1, sum ) || !CV_ARE_SIZES_EQ( mat2, sum ))
        CV_ERROR( CV_StsUnmatchedSizes, "" );

    size = cvGetMatSize( mat1 );
    type = CV_MAT_TYPE( mat1->type );

    mat1_step = mat1->step;
    mat2_step = mat2->step;
    sum_step = sum->step;

    if( !mask )
    {
        CvFunc2D_3A func = (CvFunc2D_3A)acc_tab.fn_2d[CV_MAT_DEPTH(type)];

        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );

        size.width *= CV_MAT_CN(type);

        if( CV_IS_MAT_CONT( mat1->type & mat2->type & sum->type ))
        {
            size.width *= size.height;
            mat1_step = mat2_step = sum_step = CV_STUB_STEP;
            size.height = 1;
        }

        IPPI_CALL( func( mat1->data.ptr, mat1_step, mat2->data.ptr, mat2_step,
                         sum->data.ptr, sum_step, size ));
    }
    else
    {
        CvFunc2D_4A func = (CvFunc2D_4A)accmask_tab.fn_2d[type];

        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );

        CV_CALL( mask = cvGetMat( mask, &maskstub ));

        if( !CV_IS_MASK_ARR( mask ))
            CV_ERROR( CV_StsBadMask, "" );

        if( !CV_ARE_SIZES_EQ( mat1, mask ))
            CV_ERROR( CV_StsUnmatchedSizes, "" );

        mask_step = mask->step;

        if( CV_IS_MAT_CONT( mat1->type & mat2->type & sum->type & mask->type ))
        {
            size.width *= size.height;
            mat1_step = mat2_step = sum_step = mask_step = CV_STUB_STEP;
            size.height = 1;
        }

        IPPI_CALL( func( mat1->data.ptr, mat1_step, mat2->data.ptr, mat2_step,
                         mask->data.ptr, mask_step,
                         sum->data.ptr, sum_step, size ));
    }

    __END__;
}


typedef CvStatus (CV_STDCALL *CvAddWeightedFunc)( const void* src, int srcstep,
                                                  void* dst, int dststep,
                                                  CvSize size, float alpha );

typedef CvStatus (CV_STDCALL *CvAddWeightedMaskFunc)( const void* src, int srcstep,
                                                      void* dst, int dststep,
                                                      const void* mask, int maskstep,
                                                      CvSize size, float alpha );

CV_IMPL void
cvRunningAvg( const void* arrY, void* arrU,
              double alpha, const void* maskarr )
{
    static CvFuncTable acc_tab;
    static CvBigFuncTable accmask_tab;
    static int inittab = 0;
    
    CV_FUNCNAME( "cvRunningAvg" );

    __BEGIN__;

    int coi1, coi2;
    int type;
    int mat_step, sum_step, mask_step = 0;
    CvSize size;
    CvMat stub, *mat = (CvMat*)arrY;
    CvMat sumstub, *sum = (CvMat*)arrU;
    CvMat maskstub, *mask = (CvMat*)maskarr;

    if( !inittab )
    {
        icvInitAddWeightedTable( &acc_tab, &accmask_tab );
        inittab = 1;
    }

    CV_CALL( mat = cvGetMat( mat, &stub, &coi1 ));
    CV_CALL( sum = cvGetMat( sum, &sumstub, &coi2 ));

    if( coi1 != 0 || coi2 != 0 )
        CV_ERROR( CV_BadCOI, "" );

    if( !CV_ARE_CNS_EQ( mat, sum ))
        CV_ERROR( CV_StsUnmatchedFormats, "" );

    if( CV_MAT_DEPTH( sum->type ) != CV_32F )
        CV_ERROR( CV_BadDepth, "" );

    if( !CV_ARE_SIZES_EQ( mat, sum ))
        CV_ERROR( CV_StsUnmatchedSizes, "" );

    size = cvGetMatSize( mat );
    type = CV_MAT_TYPE( mat->type );

    mat_step = mat->step;
    sum_step = sum->step;

    if( !mask )
    {
        CvAddWeightedFunc func = (CvAddWeightedFunc)acc_tab.fn_2d[CV_MAT_DEPTH(type)];

        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );

        size.width *= CV_MAT_CN(type);
        if( CV_IS_MAT_CONT( mat->type & sum->type ))
        {
            size.width *= size.height;
            mat_step = sum_step = CV_STUB_STEP;
            size.height = 1;
        }

        IPPI_CALL( func( mat->data.ptr, mat_step,
                         sum->data.ptr, sum_step, size, (float)alpha ));
    }
    else
    {
        CvAddWeightedMaskFunc func = (CvAddWeightedMaskFunc)accmask_tab.fn_2d[type];

        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );

        CV_CALL( mask = cvGetMat( mask, &maskstub ));

        if( !CV_IS_MASK_ARR( mask ))
            CV_ERROR( CV_StsBadMask, "" );

        if( !CV_ARE_SIZES_EQ( mat, mask ))
            CV_ERROR( CV_StsUnmatchedSizes, "" );

        mask_step = mask->step;

        if( CV_IS_MAT_CONT( mat->type & sum->type & mask->type ))
        {
            size.width *= size.height;
            mat_step = sum_step = mask_step = CV_STUB_STEP;
            size.height = 1;
        }

        IPPI_CALL( func( mat->data.ptr, mat_step, mask->data.ptr, mask_step,
                         sum->data.ptr, sum_step, size, (float)alpha ));
    }

    __END__;
}


/* End of file. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝瓜av网站精品一区二区 | 国产成人午夜精品影院观看视频 | 亚洲欧美另类久久久精品2019| www国产成人免费观看视频 深夜成人网| 3atv在线一区二区三区| 欧美精品三级在线观看| 91精品国产综合久久久久久久 | 国产精品午夜在线观看| 久久蜜桃av一区精品变态类天堂 | 91精品国产全国免费观看| 欧美日韩国产在线观看| 这里只有精品免费| 日韩免费高清视频| 久久久久国产精品麻豆ai换脸 | 久久久久国产精品免费免费搜索| 久久久精品国产99久久精品芒果| 欧美国产日韩在线观看| 国产精品久久久久婷婷二区次| 成人欧美一区二区三区视频网页| 亚洲视频在线一区| 亚洲成人一区二区在线观看| 欧美a级一区二区| 国产乱子伦视频一区二区三区 | 国产精品激情偷乱一区二区∴| 综合久久久久久久| 天天色综合天天| 国产综合色精品一区二区三区| 成人小视频在线观看| 91国偷自产一区二区开放时间 | 免费成人在线观看视频| 国产美女主播视频一区| av一二三不卡影片| 欧美日韩在线播放一区| 欧美tickling挠脚心丨vk| 国产精品日产欧美久久久久| 亚洲永久免费视频| 久久9热精品视频| 91视频www| 欧美一级高清片在线观看| 中文字幕欧美日韩一区| 天天av天天翘天天综合网 | 国产a区久久久| 色就色 综合激情| 精品国产伦理网| 最新不卡av在线| 久久精品噜噜噜成人88aⅴ| thepron国产精品| 欧美高清精品3d| 中文字幕在线观看一区二区| 偷拍一区二区三区四区| 福利视频网站一区二区三区| 欧美午夜免费电影| 国产人伦精品一区二区| 日韩成人午夜电影| 97久久超碰国产精品| 精品免费日韩av| 亚洲影院免费观看| 国产69精品久久久久毛片| 91麻豆精品国产91久久久久久久久 | 国产成人精品一区二区三区四区 | 91久久精品一区二区| 久久天堂av综合合色蜜桃网| 亚洲午夜免费福利视频| 国产成人小视频| 欧美xxx久久| 亚洲国产精品精华液网站| 成人精品在线视频观看| 精品福利在线导航| 亚洲成人综合在线| 91最新地址在线播放| 久久久综合九色合综国产精品| 调教+趴+乳夹+国产+精品| 91免费看`日韩一区二区| 久久久久久久久久久99999| 日本网站在线观看一区二区三区 | 国产欧美日韩另类一区| 免费成人av资源网| 欧美裸体一区二区三区| 亚洲激情自拍视频| 91视频在线看| 国产精品久久久99| 成人免费va视频| 久久久久久99久久久精品网站| 美脚の诱脚舐め脚责91 | 一区二区在线观看av| 成人av在线资源| 国产欧美va欧美不卡在线| 国产精品一区二区三区网站| 日韩一区二区三区视频| 日韩中文字幕区一区有砖一区| 91传媒视频在线播放| 最新国产成人在线观看| 成人免费毛片aaaaa**| 26uuu欧美日本| 国产在线视频精品一区| 精品理论电影在线观看 | 91国偷自产一区二区使用方法| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 高潮精品一区videoshd| 欧美激情一区二区三区全黄| 国产999精品久久| 国产日产欧美一区二区视频| 国产成a人亚洲| 国产精品色婷婷久久58| 99久久99久久精品国产片果冻| 国产精品久久三| 91日韩精品一区| 一区二区三区中文字幕精品精品| 91久久香蕉国产日韩欧美9色| 亚洲尤物视频在线| 欧美日产国产精品| 蜜臀91精品一区二区三区 | 午夜天堂影视香蕉久久| 宅男噜噜噜66一区二区66| 蜜桃av一区二区三区电影| 精品第一国产综合精品aⅴ| 激情六月婷婷久久| 久久精品水蜜桃av综合天堂| 国产成人精品亚洲777人妖| 中文字幕在线不卡视频| 欧洲精品一区二区三区在线观看| 午夜精品福利久久久| 欧美成人a∨高清免费观看| 国产成人精品影视| 一区二区三区成人| 欧美夫妻性生活| 国产一本一道久久香蕉| 亚洲欧洲国产专区| 欧美蜜桃一区二区三区| 欧美aaa在线| 国产精品三级视频| 欧美日韩一区二区在线观看视频 | 日本韩国欧美在线| 日韩国产欧美在线视频| 久久精品视频网| 91免费国产在线观看| 日韩和的一区二区| 国产亚洲精品久| 色婷婷国产精品综合在线观看| 日韩和的一区二区| 国产精品女同一区二区三区| 色猫猫国产区一区二在线视频| 日韩电影在线免费观看| 国产人久久人人人人爽| 欧美日韩一区成人| 国产一区二区三区| 亚洲久本草在线中文字幕| 日韩视频在线你懂得| 99久久99久久久精品齐齐| 日本色综合中文字幕| 国产精品人成在线观看免费 | 中文字幕在线一区免费| 欧美日韩三级一区| 国产91精品入口| 日本视频在线一区| 亚洲色图清纯唯美| 精品久久久久久久久久久久久久久久久| 99久久久精品免费观看国产蜜| 蜜桃视频一区二区| 亚洲精品中文在线影院| 久久精品一区二区三区不卡| 欧美日韩卡一卡二| 97se亚洲国产综合自在线| 免费精品视频最新在线| 亚洲另类在线一区| 国产欧美日韩亚州综合| 欧美一区二区在线播放| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲国产精品欧美一二99| 国产三级欧美三级日产三级99| 欧美日韩精品一区二区在线播放| eeuss影院一区二区三区| 韩国av一区二区| 日韩黄色片在线观看| 一区二区三区欧美亚洲| 中文字幕精品一区二区三区精品| 777久久久精品| 欧美性欧美巨大黑白大战| av成人老司机| 成人亚洲一区二区一| 国产一区二区三区观看| 日本在线观看不卡视频| 亚洲va欧美va人人爽| 亚洲激情av在线| 亚洲女子a中天字幕| 国产精品欧美一级免费| 久久久国产午夜精品| 精品久久久网站| 欧美成人在线直播| 这里只有精品电影| 欧美人狂配大交3d怪物一区| 在线看日韩精品电影| 色婷婷一区二区| 色婷婷精品久久二区二区蜜臀av| 99久久精品免费精品国产| 成熟亚洲日本毛茸茸凸凹| 国产成人综合亚洲91猫咪| 国产一区二区在线视频| 国产精一品亚洲二区在线视频| 国内精品写真在线观看|