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

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

?? cvaccum.cpp

?? 將OpenCV移植到DSP上
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
                                                                        \
    for( ; size.height--; src += srcstep,                               \
                          dst += dststep, mask += maskstep )            \
    {                                                                   \
        int x;                                                          \
        for( x = 0; x < size.width; x++ )                               \
            if( mask[x] )                                               \
            {                                                           \
                dsttype t0, t1, t2;                                     \
                t0 = dst[x*3] + cvtmacro(src[x*3]);                     \
                t1 = dst[x*3+1] + cvtmacro(src[x*3+1]);                 \
                t2 = dst[x*3+2] + cvtmacro(src[x*3+2]);                 \
                dst[x*3] = t0;                                          \
                dst[x*3+1] = t1;                                        \
                dst[x*3+2] = t2;                                        \
            }                                                           \
    }                                                                   \
                                                                        \
    return CV_OK;                                                       \
}


ICV_DEF_ACCMASK_FUNC_C3( icvAdd_8u32f_C3IMR, uchar, float, CV_8TO32F )
ICV_DEF_ACCMASK_FUNC_C3( icvAdd_32f_C3IMR, float, float, CV_NOP )
ICV_DEF_ACCMASK_FUNC_C3( icvAddSquare_8u32f_C3IMR, uchar, float, CV_8TO32F_SQR )
ICV_DEF_ACCMASK_FUNC_C3( icvAddSquare_32f_C3IMR, float, float, CV_SQR )


#define  ICV_DEF_ACCPRODUCTMASK_FUNC_C3( flavor, srctype, dsttype, cvtmacro )  \
IPCVAPI_IMPL( CvStatus, icvAddProduct_##flavor##_C3IMR,                 \
( const srctype *src1, int step1, const srctype* src2, int step2,       \
  const uchar* mask, int maskstep, dsttype *dst, int dststep, CvSize size ),\
  (src1, step1, src2, step2, mask, maskstep, dst, dststep, size ))      \
{                                                                       \
    step1 /= sizeof(src1[0]);                                           \
    step2 /= sizeof(src2[0]);                                           \
    dststep /= sizeof(dst[0]);                                          \
                                                                        \
    for( ; size.height--; src1 += step1, src2 += step2,                 \
                          dst += dststep, mask += maskstep )            \
    {                                                                   \
        int x;                                                          \
        for( x = 0; x < size.width; x++ )                               \
            if( mask[x] )                                               \
            {                                                           \
                dsttype t0, t1, t2;                                     \
                t0 = dst[x*3]+cvtmacro(src1[x*3])*cvtmacro(src2[x*3]);  \
                t1 = dst[x*3+1]+cvtmacro(src1[x*3+1])*cvtmacro(src2[x*3+1]);\
                t2 = dst[x*3+2]+cvtmacro(src1[x*3+2])*cvtmacro(src2[x*3+2]);\
                dst[x*3] = t0;                                          \
                dst[x*3+1] = t1;                                        \
                dst[x*3+2] = t2;                                        \
            }                                                           \
    }                                                                   \
                                                                        \
    return CV_OK;                                                       \
}


ICV_DEF_ACCPRODUCTMASK_FUNC_C3( 8u32f, uchar, float, CV_8TO32F )
ICV_DEF_ACCPRODUCTMASK_FUNC_C3( 32f, float, float, CV_NOP )


#define  ICV_DEF_ACCWEIGHTMASK_FUNC_C3( flavor, srctype, dsttype, cvtmacro ) \
IPCVAPI_IMPL( CvStatus, icvAddWeighted_##flavor##_C3IMR,                \
( const srctype *src, int srcstep, const uchar* mask, int maskstep,     \
  dsttype *dst, int dststep, CvSize size, dsttype alpha ),              \
  (src, srcstep, mask, maskstep, dst, dststep, size, alpha ))           \
{                                                                       \
    dsttype beta = (dsttype)(1 - alpha);                                \
    srcstep /= sizeof(src[0]);                                          \
    dststep /= sizeof(dst[0]);                                          \
                                                                        \
    for( ; size.height--; src += srcstep,                               \
                          dst += dststep, mask += maskstep )            \
    {                                                                   \
        int x;                                                          \
        for( x = 0; x < size.width; x++ )                               \
            if( mask[x] )                                               \
            {                                                           \
                dsttype t0, t1, t2;                                     \
                t0 = dst[x*3]*beta + cvtmacro(src[x*3])*alpha;          \
                t1 = dst[x*3+1]*beta + cvtmacro(src[x*3+1])*alpha;      \
                t2 = dst[x*3+2]*beta + cvtmacro(src[x*3+2])*alpha;      \
                dst[x*3] = t0;                                          \
                dst[x*3+1] = t1;                                        \
                dst[x*3+2] = t2;                                        \
            }                                                           \
    }                                                                   \
                                                                        \
    return CV_OK;                                                       \
}

ICV_DEF_ACCWEIGHTMASK_FUNC_C3( 8u32f, uchar, float, CV_8TO32F )
ICV_DEF_ACCWEIGHTMASK_FUNC_C3( 32f, float, float, CV_NOP )


#define  ICV_DEF_INIT_ACC_TAB( FUNCNAME )                                           \
static  void  icvInit##FUNCNAME##Table( CvFuncTable* tab, CvBigFuncTable* masktab ) \
{                                                                                   \
    tab->fn_2d[CV_8U] = (void*)icv##FUNCNAME##_8u32f_C1IR;                          \
    tab->fn_2d[CV_32F] = (void*)icv##FUNCNAME##_32f_C1IR;                           \
                                                                                    \
    masktab->fn_2d[CV_8UC1] = (void*)icv##FUNCNAME##_8u32f_C1IMR;                   \
    masktab->fn_2d[CV_32FC1] = (void*)icv##FUNCNAME##_32f_C1IMR;                    \
                                                                                    \
    masktab->fn_2d[CV_8UC3] = (void*)icv##FUNCNAME##_8u32f_C3IMR;                   \
    masktab->fn_2d[CV_32FC3] = (void*)icv##FUNCNAME##_32f_C3IMR;                    \
}


ICV_DEF_INIT_ACC_TAB( Add )
ICV_DEF_INIT_ACC_TAB( AddSquare )
ICV_DEF_INIT_ACC_TAB( AddProduct )
ICV_DEF_INIT_ACC_TAB( AddWeighted )


CV_IMPL void
cvAcc( const void* arr, void* sumarr, const void* maskarr )
{
    static CvFuncTable acc_tab;
    static CvBigFuncTable accmask_tab;
    static int inittab = 0;
    
    CV_FUNCNAME( "cvAcc" );

    __BEGIN__;

    int type, sumdepth;
    int mat_step, sum_step, mask_step = 0;
    CvSize size;
    CvMat stub, *mat = (CvMat*)arr;
    CvMat sumstub, *sum = (CvMat*)sumarr;
    CvMat maskstub, *mask = (CvMat*)maskarr;

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

    if( !CV_IS_MAT( mat ) || !CV_IS_MAT( sum ))
    {
        int coi1 = 0, coi2 = 0;
        CV_CALL( mat = cvGetMat( mat, &stub, &coi1 ));
        CV_CALL( sum = cvGetMat( sum, &sumstub, &coi2 ));
        if( coi1 + coi2 != 0 )
            CV_ERROR( CV_BadCOI, "" );
    }

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

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

    sumdepth = CV_MAT_DEPTH( sum->type );
    if( sumdepth != CV_32F && (maskarr != 0 || sumdepth != CV_64F))
        CV_ERROR( CV_BadDepth, "Bad accumulator type" );

    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 )
    {
        CvFunc2D_2A func=(CvFunc2D_2A)acc_tab.fn_2d[CV_MAT_DEPTH(type)];

        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "Unsupported type combination" );

        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
cvSquareAcc( const void* arr, void* sq_sum, const void* maskarr )
{
    static CvFuncTable acc_tab;
    static CvBigFuncTable accmask_tab;
    static int inittab = 0;
    
    CV_FUNCNAME( "cvSquareAcc" );

    __BEGIN__;

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

    if( !inittab )
    {
        icvInitAddSquareTable( &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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品成人综合色在线婷婷 | 久久精品国产亚洲高清剧情介绍 | 久久激五月天综合精品| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲欧美一区二区在线观看| 亚洲国产高清不卡| 国产精品欧美精品| 亚洲品质自拍视频网站| 亚洲精品亚洲人成人网在线播放| 亚洲精选一二三| 亚洲综合在线免费观看| 亚洲一区二区三区视频在线播放| 亚洲一区二区欧美激情| 丝袜美腿高跟呻吟高潮一区| 奇米影视7777精品一区二区| 老司机免费视频一区二区| 狠狠色丁香久久婷婷综合_中 | 欧美日韩一本到| 91精品午夜视频| 2020国产精品自拍| 国产日韩欧美精品在线| 亚洲区小说区图片区qvod| 亚洲一卡二卡三卡四卡五卡| 免费在线一区观看| 国产成人午夜片在线观看高清观看| 成人一区二区三区视频 | 欧美国产日产图区| 亚洲伦在线观看| 视频一区在线播放| 国产精品一色哟哟哟| 99久久国产综合精品色伊| 91久久一区二区| 中文字幕亚洲区| 亚洲女同一区二区| 麻豆精品新av中文字幕| 麻豆精品在线看| 国产99久久久国产精品潘金网站| 国产成人精品亚洲日本在线桃色| 国产成人欧美日韩在线电影| av电影在线观看一区| 91视频精品在这里| 欧美一区二区三区四区高清| 奇米影视7777精品一区二区| 国产精品资源站在线| 91成人免费网站| 2021中文字幕一区亚洲| 亚洲综合色自拍一区| 麻豆成人免费电影| 91丨porny丨户外露出| 91精品国产高清一区二区三区蜜臀 | 亚洲成人免费在线观看| 国产毛片精品视频| 欧美三级电影在线观看| 国产色一区二区| 婷婷成人综合网| 成人动漫av在线| 88在线观看91蜜桃国自产| 中文字幕av不卡| 男女男精品视频| 色婷婷精品大视频在线蜜桃视频| www一区二区| 日韩精品一区第一页| 不卡欧美aaaaa| 精品日韩成人av| 亚洲国产精品一区二区久久 | www欧美成人18+| 午夜精品久久久久久不卡8050| 成人午夜激情影院| 欧美v日韩v国产v| 亚洲成av人影院在线观看网| 国产iv一区二区三区| 日韩欧美一级精品久久| 亚洲精品视频在线观看网站| 国产一区二区0| 日韩亚洲电影在线| 亚洲高清免费视频| 久久疯狂做爰流白浆xx| 日韩精品在线看片z| 国产乱子轮精品视频| 国产亚洲欧美日韩俺去了| 青青青伊人色综合久久| 日本精品一区二区三区高清 | 成人免费毛片高清视频| 精品国产一区二区亚洲人成毛片| 亚洲精品免费在线| 欧美人伦禁忌dvd放荡欲情| 91丨九色丨蝌蚪富婆spa| 欧美一二三四在线| 136国产福利精品导航| 91国偷自产一区二区开放时间 | 亚洲特黄一级片| 91香蕉视频污在线| 精品免费视频.| 久久精品国内一区二区三区| 一区二区三区免费网站| 国产精品资源网站| 欧美不卡在线视频| 日韩国产一区二| 欧美肥妇bbw| 丝瓜av网站精品一区二区| 欧美日韩高清一区二区三区| 一区二区久久久久| 91成人国产精品| 洋洋成人永久网站入口| 一本大道综合伊人精品热热| 亚洲裸体xxx| 日本久久电影网| 亚洲国产视频a| 在线不卡免费欧美| 日精品一区二区三区| 欧美一区二区三区日韩视频| 日韩电影在线一区| 日韩精品一区二区在线| 精品无码三级在线观看视频| 精品国内二区三区| 精品1区2区3区| 亚洲国产精品自拍| 91精品久久久久久久91蜜桃| 丝袜诱惑亚洲看片| 精品99一区二区三区| 国产91精品精华液一区二区三区 | 国产精品人妖ts系列视频| 欧美sm美女调教| 欧美色倩网站大全免费| 国产盗摄精品一区二区三区在线| 亚洲一区二区美女| 中文字幕第一区二区| 91精品国产91久久综合桃花 | 91国产成人在线| 成人h精品动漫一区二区三区| 日本aⅴ精品一区二区三区| av电影天堂一区二区在线观看| 中文字幕亚洲欧美在线不卡| 91黄色激情网站| 蜜臀久久99精品久久久久久9| 精品卡一卡二卡三卡四在线| 丁香六月综合激情| 久久久精品人体av艺术| 成人av片在线观看| 午夜精品成人在线| 国产欧美一区二区三区在线老狼| 91免费精品国自产拍在线不卡| 午夜精品久久久久久| 色菇凉天天综合网| 成人免费电影视频| 一区二区激情小说| 91精品国产福利| 国产精品伊人色| 亚洲国产乱码最新视频| 国产网红主播福利一区二区| 色综合天天视频在线观看| 久久精品国产色蜜蜜麻豆| 中文字幕精品三区| 91精品久久久久久久99蜜桃 | av网站免费线看精品| 视频精品一区二区| 亚洲国产精品二十页| 欧美日韩在线不卡| 国产丶欧美丶日本不卡视频| 亚洲成人av一区二区| 中文字幕乱码日本亚洲一区二区| 欧美日本乱大交xxxxx| av一区二区久久| 久久99精品久久久久久国产越南| 一区二区三区日韩欧美精品| 精品国产一区a| 欧美熟乱第一页| 粉嫩在线一区二区三区视频| 亚洲高清一区二区三区| 国产精品女主播在线观看| 欧美一卡二卡三卡四卡| 一区二区三区在线观看视频| 蜜桃av一区二区三区电影| 欧美日韩国产综合视频在线观看| 精品久久免费看| 亚洲欧美视频一区| 国产精品99久久久久久久vr| 欧美一级在线视频| 成人精品一区二区三区四区 | 色狠狠av一区二区三区| 中文字幕视频一区| 91国产成人在线| 国产亚洲精品超碰| 91丨九色丨蝌蚪富婆spa| 日本网站在线观看一区二区三区| 亚洲欧美一区二区三区久本道91 | hitomi一区二区三区精品| 欧美大尺度电影在线| 国产精品久久精品日日| 蓝色福利精品导航| 91黄视频在线| 亚洲成人av电影| 在线观看三级视频欧美| 五月婷婷激情综合| 欧美日韩精品一区二区三区| 五月天网站亚洲| 国产精品三级在线观看| 91麻豆成人久久精品二区三区| 亚洲人成网站色在线观看| 欧美tickling挠脚心丨vk|