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

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

?? cxarithm.cpp

?? 將OpenCV移植到DSP上
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):
            iterator.size.width *= CV_MAT_CN(type);

            if( !inittab )
            {
                icvInitSubC1RTable( &sub_tab );
                inittab = 1;
            }

            depth = CV_MAT_DEPTH(type);
            if( depth <= CV_16S )
            {
                func_sfs = (CvFunc2D_3A1I)(sub_tab.fn_2d[depth]);
                if( !func_sfs )
                    CV_ERROR( CV_StsUnsupportedFormat, "" );

                do
                {
                    IPPI_CALL( func_sfs( iterator.ptr[0], CV_STUB_STEP,
                                         iterator.ptr[1], CV_STUB_STEP,
                                         iterator.ptr[2], CV_STUB_STEP,
                                         iterator.size, 0 ));
                }
                while( cvNextNArraySlice( &iterator ));
            }
            else
            {
                func = (CvFunc2D_3A)(sub_tab.fn_2d[depth]);
                if( !func )
                    CV_ERROR( CV_StsUnsupportedFormat, "" );

                do
                {
                    IPPI_CALL( func( iterator.ptr[0], CV_STUB_STEP,
                                     iterator.ptr[1], CV_STUB_STEP,
                                     iterator.ptr[2], CV_STUB_STEP,
                                     iterator.size ));
                }
                while( cvNextNArraySlice( &iterator ));
            }
            EXIT;
        }
        else
        {
            int coi1 = 0, coi2 = 0, coi3 = 0;
            
            CV_CALL( src1 = cvGetMat( src1, &srcstub1, &coi1 ));
            CV_CALL( src2 = cvGetMat( src2, &srcstub2, &coi2 ));
            CV_CALL( dst = cvGetMat( dst, &dststub, &coi3 ));
            if( coi1 + coi2 + coi3 != 0 )
                CV_ERROR( CV_BadCOI, "" );
        }
    }

    if( !CV_ARE_TYPES_EQ( src1, src2 ) || !CV_ARE_TYPES_EQ( src1, dst ))
        CV_ERROR_FROM_CODE( CV_StsUnmatchedFormats );

    if( !CV_ARE_SIZES_EQ( src1, src2 ) || !CV_ARE_SIZES_EQ( src1, dst ))
        CV_ERROR_FROM_CODE( CV_StsUnmatchedSizes );

    type = CV_MAT_TYPE(src1->type);
    size = cvGetMatSize( src1 );
    depth = CV_MAT_DEPTH(type);
    cn = CV_MAT_CN(type);

    if( !mask )
    {
        if( CV_IS_MAT_CONT( src1->type & src2->type & dst->type ))
        {
            int len = size.width*size.height*cn;

            if( len <= CV_MAX_INLINE_MAT_OP_SIZE*CV_MAX_INLINE_MAT_OP_SIZE )
            {
                if( depth == CV_32F )
                {
                    const float* src1data = (const float*)(src1->data.ptr);
                    const float* src2data = (const float*)(src2->data.ptr);
                    float* dstdata = (float*)(dst->data.ptr);

                    do
                    {
                        dstdata[len-1] = (float)(src2data[len-1] - src1data[len-1]);
                    }
                    while( --len );

                    EXIT;
                }

                if( depth == CV_64F )
                {
                    const double* src1data = (const double*)(src1->data.ptr);
                    const double* src2data = (const double*)(src2->data.ptr);
                    double* dstdata = (double*)(dst->data.ptr);

                    do
                    {
                        dstdata[len-1] = src2data[len-1] - src1data[len-1];
                    }
                    while( --len );

                    EXIT;
                }
            }
            cont_flag = 1;
        }

        dy = size.height;
        copym_func = 0;
        tdst = dst;
    }
    else
    {
        int buf_size, elem_size;
        
        if( !CV_IS_MAT(mask) )
            CV_CALL( mask = cvGetMat( mask, &maskstub ));

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

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

        cont_flag = CV_IS_MAT_CONT( src1->type & src2->type & dst->type & mask->type );
        elem_size = CV_ELEM_SIZE(type);

        dy = CV_MAX_LOCAL_SIZE/(elem_size*size.height);
        dy = MAX(dy,1);
        dy = MIN(dy,size.height);
        dstbuf = cvMat( dy, size.width, type );
        if( !cont_flag )
            dstbuf.step = cvAlign( dstbuf.step, 8 );
        buf_size = dstbuf.step ? dstbuf.step*dy : size.width*elem_size;
        if( buf_size > CV_MAX_LOCAL_SIZE )
        {
            CV_CALL( buffer = (uchar*)cvAlloc( buf_size ));
            local_alloc = 0;
        }
        else
            buffer = (uchar*)cvAlloc( buf_size );
        dstbuf.data.ptr = buffer;
        tdst = &dstbuf;
        
        copym_func = icvGetCopyMaskFunc( elem_size );
    }

    if( !inittab )
    {
        icvInitSubC1RTable( &sub_tab );
        inittab = 1;
    }

    if( depth <= CV_16S )
    {
        func = 0;
        func_sfs = (CvFunc2D_3A1I)(sub_tab.fn_2d[depth]);
        if( !func_sfs )
            CV_ERROR( CV_StsUnsupportedFormat, "" );
    }
    else
    {
        func_sfs = 0;
        func = (CvFunc2D_3A)(sub_tab.fn_2d[depth]);
        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );
    }

    src1_step = src1->step;
    src2_step = src2->step;
    dst_step = dst->step;
    tdst_step = tdst->step;
    mask_step = mask ? mask->step : 0;

    for( y = 0; y < size.height; y += dy )
    {
        tsize.width = size.width;
        tsize.height = dy;
        if( y + dy > size.height )
            tsize.height = size.height - y;
        if( cont_flag || tsize.height == 1 )
        {
            tsize.width *= tsize.height;
            tsize.height = 1;
            src1_step = src2_step = tdst_step = dst_step = mask_step = CV_STUB_STEP;
        }

        IPPI_CALL( depth <= CV_16S ?
            func_sfs( src1->data.ptr + y*src1->step, src1_step,
                      src2->data.ptr + y*src2->step, src2_step,
                      tdst->data.ptr, tdst_step,
                      cvSize( tsize.width*cn, tsize.height ), 0 ) :
            func( src1->data.ptr + y*src1->step, src1_step,
                  src2->data.ptr + y*src2->step, src2_step,
                  tdst->data.ptr, tdst_step,
                  cvSize( tsize.width*cn, tsize.height )));

        if( mask )
        {
            IPPI_CALL( copym_func( tdst->data.ptr, tdst_step, dst->data.ptr + y*dst->step,
                                   dst_step, tsize, mask->data.ptr + y*mask->step, mask_step ));
        }
    }

    __END__;

    if( !local_alloc )
        cvFree( &buffer );
}


CV_IMPL void
cvSubRS( const void* srcarr, CvScalar scalar, void* dstarr, const void* maskarr )
{
    static CvFuncTable subr_tab;
    static int inittab = 0;
    int local_alloc = 1;
    uchar* buffer = 0;

    CV_FUNCNAME( "cvSubRS" );

    __BEGIN__;

    int sctype, y, dy, type, depth, cn, coi = 0, cont_flag = 0;
    int src_step, dst_step, tdst_step, mask_step;
    CvMat srcstub, *src = (CvMat*)srcarr;
    CvMat dststub, *dst = (CvMat*)dstarr;
    CvMat maskstub, *mask = (CvMat*)maskarr;
    CvMat dstbuf, *tdst;
    CvFunc2D_2A1P func;
    CvCopyMaskFunc copym_func;
    double buf[12];
    int is_nd = 0;
    CvSize size, tsize; 

    if( !inittab )
    {
        icvInitSubRCC1RTable( &subr_tab );
        inittab = 1;
    }

    if( !CV_IS_MAT(src) )
    {
        if( CV_IS_MATND(src) )
            is_nd = 1;
        else
        {
            CV_CALL( src = cvGetMat( src, &srcstub, &coi ));
            if( coi != 0 )
                CV_ERROR( CV_BadCOI, "" );
        }
    }

    if( !CV_IS_MAT(dst) )
    {
        if( CV_IS_MATND(dst) )
            is_nd = 1;
        else
        {
            CV_CALL( dst = cvGetMat( dst, &dststub, &coi ));
            if( coi != 0 )
                CV_ERROR( CV_BadCOI, "" );
        }
    }

    if( is_nd )
    {
        CvArr* arrs[] = { src, dst };
        CvMatND stubs[2];
        CvNArrayIterator iterator;

        if( maskarr )
            CV_ERROR( CV_StsBadMask,
            "This operation on multi-dimensional arrays does not support mask" );

        CV_CALL( cvInitNArrayIterator( 2, arrs, 0, stubs, &iterator ));

        sctype = type = CV_MAT_TYPE(iterator.hdr[0]->type);
        if( CV_MAT_DEPTH(sctype) < CV_32S )
            sctype = (type & CV_MAT_CN_MASK) | CV_32SC1;
        iterator.size.width *= CV_MAT_CN(type);

        func = (CvFunc2D_2A1P)(subr_tab.fn_2d[CV_MAT_DEPTH(type)]);
        if( !func )
            CV_ERROR( CV_StsUnsupportedFormat, "" );
       
        CV_CALL( cvScalarToRawData( &scalar, buf, sctype, 1 ));

        do
        {
            IPPI_CALL( func( iterator.ptr[0], CV_STUB_STEP,
                             iterator.ptr[1], CV_STUB_STEP,
                             iterator.size, buf ));
        }

        
		
		
		while( cvNextNArraySlice( &iterator ));
        EXIT;
    }

    if( !CV_ARE_TYPES_EQ( src, dst ))
        CV_ERROR_FROM_CODE( CV_StsUnmatchedFormats );

    if( !CV_ARE_SIZES_EQ( src, dst ))
        CV_ERROR_FROM_CODE( CV_StsUnmatchedSizes );

    sctype = type = CV_MAT_TYPE(src->type);
    depth = CV_MAT_DEPTH(type);
    cn = CV_MAT_CN(type);
    if( depth < CV_32S )
        sctype = (type & CV_MAT_CN_MASK) | CV_32SC1;

    size = cvGetMatSize( src );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区在| 韩国女主播成人在线观看| 成人app网站| 欧美变态tickle挠乳网站| 亚洲最大的成人av| www.亚洲精品| 欧美激情一区二区三区不卡 | 成人性色生活片免费看爆迷你毛片| 欧美伊人久久大香线蕉综合69| 中文字幕欧美区| 国产成人小视频| 久久久久久久综合狠狠综合| 久久精品噜噜噜成人88aⅴ| 欧美日韩国产成人在线免费| 一级日本不卡的影视| 91小视频在线观看| 亚洲欧美日韩国产另类专区| 色婷婷综合激情| 婷婷一区二区三区| 精品999在线播放| 成人av在线播放网址| 亚洲卡通欧美制服中文| 欧美二区三区91| 成人做爰69片免费看网站| 国产午夜精品美女毛片视频| av在线不卡免费看| 午夜视黄欧洲亚洲| 久久在线观看免费| 一本到不卡免费一区二区| 免费一级欧美片在线观看| 国产校园另类小说区| 欧美性色黄大片手机版| 91精品福利在线一区二区三区 | 久久久久久久久久久黄色| fc2成人免费人成在线观看播放| 亚洲一区av在线| 亚洲国产精品二十页| 69久久99精品久久久久婷婷| 成人污视频在线观看| 日韩av一区二区三区| 亚洲欧洲另类国产综合| 日韩欧美一二三四区| 91福利小视频| 成人av午夜电影| 极品销魂美女一区二区三区| 亚洲国产精品一区二区久久| 精品乱码亚洲一区二区不卡| 91国产免费观看| 久久婷婷国产综合国色天香| 欧美日韩精品专区| 国产精品久久久久一区二区三区| 欧美一区2区视频在线观看| av午夜精品一区二区三区| 麻豆91在线看| 日韩av电影天堂| 亚洲成av人片在线观看无码| 国产精品国产三级国产三级人妇 | 亚洲一区二区三区国产| 1024成人网| 国产精品国产自产拍高清av王其| 日本91福利区| 免费亚洲电影在线| 久久成人精品无人区| 日本中文字幕不卡| 六月丁香婷婷久久| 久久99国产精品久久| 美女高潮久久久| 国产一区二区三区免费| 国产一区二区三区免费观看| 狠狠色2019综合网| 国产91富婆露脸刺激对白| 成人免费精品视频| 99视频一区二区三区| 色94色欧美sute亚洲线路二| 色丁香久综合在线久综合在线观看| 成人午夜电影网站| 成年人国产精品| 在线中文字幕不卡| 欧美日韩在线综合| 日韩欧美一级片| 久久免费美女视频| 亚洲色图制服诱惑| 免费在线视频一区| 国产呦精品一区二区三区网站| 成人精品国产福利| 欧美视频在线一区| 337p粉嫩大胆色噜噜噜噜亚洲| 久久免费精品国产久精品久久久久| 国产精品理论在线观看| 日日摸夜夜添夜夜添亚洲女人| 韩国成人精品a∨在线观看| www.性欧美| 欧美一级二级三级乱码| 国产精品免费视频观看| 亚洲成人午夜电影| 91麻豆国产精品久久| 6080午夜不卡| 亚洲欧美另类小说| 国产精选一区二区三区| 色就色 综合激情| 国产亚洲欧美色| 亚洲国产精品久久不卡毛片 | 日韩片之四级片| 亚洲女同女同女同女同女同69| 人禽交欧美网站| 一本色道久久综合亚洲aⅴ蜜桃| 欧美一级夜夜爽| 亚洲激情一二三区| 国产在线看一区| 在线电影一区二区三区| 亚洲天堂中文字幕| 国产成人精品免费网站| 午夜精品福利视频网站| 一本一道久久a久久精品综合蜜臀| 久久新电视剧免费观看| 亚洲成av人综合在线观看| 色狠狠av一区二区三区| 亚洲另类春色国产| 在线不卡a资源高清| 亚洲欧洲av另类| 99麻豆久久久国产精品免费| 久久综合精品国产一区二区三区| 日本vs亚洲vs韩国一区三区 | 国产成人av福利| 26uuu亚洲婷婷狠狠天堂| 蜜臀久久99精品久久久画质超高清| 欧美伦理影视网| 欧美在线观看一区二区| 亚洲一区在线视频| 欧美高清一级片在线| 亚洲成人777| 欧美成人三级在线| 国产福利一区二区三区视频在线 | 欧美日韩国产一级| 蜜臀久久99精品久久久久久9| 日韩视频不卡中文| 久久99精品久久久久久国产越南| 日韩欧美三级在线| 粉嫩aⅴ一区二区三区四区 | 国产精品三级视频| 91免费观看在线| 亚洲成人免费在线| 26uuu欧美| 91在线观看地址| 美女高潮久久久| 国产精品国产精品国产专区不蜜 | 成人一级片网址| 一区二区三区影院| 日韩一区二区三区四区 | 久久色中文字幕| 91色|porny| 青青草国产精品亚洲专区无| 国产亚洲精品中文字幕| 欧美日韩一区二区三区在线看| 国产真实乱子伦精品视频| 亚洲男人电影天堂| 久久女同互慰一区二区三区| 一本大道久久精品懂色aⅴ| 国产一区在线看| 丝袜诱惑制服诱惑色一区在线观看| 蜜臀av性久久久久蜜臀av麻豆| 中文文精品字幕一区二区| 91麻豆精品91久久久久久清纯| www.亚洲免费av| 国产精品亚洲一区二区三区在线| 亚洲成人动漫在线观看| 亚洲欧美另类综合偷拍| 欧美国产综合色视频| 精品国产欧美一区二区| 欧美理论电影在线| 色婷婷精品大在线视频| 国产精品亚洲专一区二区三区 | 亚洲成a人v欧美综合天堂| 亚洲色图都市小说| 亚洲欧洲国产日本综合| 国产精品入口麻豆原神| 日韩欧美在线不卡| 91精品国产入口| 日韩欧美国产wwwww| 91麻豆精品91久久久久同性| 欧美日本不卡视频| 欧美三区免费完整视频在线观看| 99国产欧美另类久久久精品| 91丨porny丨首页| 色综合婷婷久久| 欧美性大战久久久久久久| 色伊人久久综合中文字幕| 日韩欧美国产一区二区三区| 日韩欧美一二区| 国产欧美精品在线观看| 中文字幕国产一区| 亚洲精品亚洲人成人网在线播放| 国产精品久久久久久久浪潮网站 | 狠狠色狠狠色合久久伊人| 国产91精品露脸国语对白| 一本色道久久综合精品竹菊 | 亚洲自拍欧美精品| 久久国产精品99久久人人澡| 国产在线不卡一区| 95精品视频在线|