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

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

?? cxdatastructs.cpp

?? 將OpenCV移植到DSP上
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
    block = seq->first;    if( element )        CV_MEMCPY_AUTO( element, block->data, elem_size );    block->data += elem_size;    block->start_index++;    seq->total--;    if( --(block->count) == 0 )    {        icvFreeSeqBlock( seq, 1 );    }    __END__;}/* inserts new element in the middle of the sequence */CV_IMPL char*cvSeqInsert( CvSeq *seq, int before_index, void *element ){    int elem_size;    int block_size;    CvSeqBlock *block;    int delta_index;    int total;    char* ret_ptr = 0;    CV_FUNCNAME( "cvSeqInsert" );    __BEGIN__;    if( !seq )        CV_ERROR( CV_StsNullPtr, "" );    total = seq->total;    before_index += before_index < 0 ? total : 0;    before_index -= before_index > total ? total : 0;    if( (unsigned)before_index > (unsigned)total )        CV_ERROR( CV_StsOutOfRange, "" );    if( before_index == total )    {        CV_CALL( ret_ptr = cvSeqPush( seq, element ));    }    else if( before_index == 0 )    {        CV_CALL( ret_ptr = cvSeqPushFront( seq, element ));    }    else    {        elem_size = seq->elem_size;        if( before_index >= total >> 1 )        {            char *ptr = seq->ptr + elem_size;            if( ptr > seq->block_max )            {                CV_CALL( icvGrowSeq( seq, 0 ));                ptr = seq->ptr + elem_size;                assert( ptr <= seq->block_max );            }            delta_index = seq->first->start_index;            block = seq->first->prev;            block->count++;            block_size = (int)(ptr - block->data);            while( before_index < block->start_index - delta_index )            {                CvSeqBlock *prev_block = block->prev;                memmove( block->data + elem_size, block->data, block_size - elem_size );                block_size = prev_block->count * elem_size;                memcpy( block->data, prev_block->data + block_size - elem_size, elem_size );                block = prev_block;                /* check that we don't fall in the infinite loop */                assert( block != seq->first->prev );            }            before_index = (before_index - block->start_index + delta_index) * elem_size;            memmove( block->data + before_index + elem_size, block->data + before_index,                     block_size - before_index - elem_size );            ret_ptr = block->data + before_index;            if( element )                memcpy( ret_ptr, element, elem_size );            seq->ptr = ptr;        }        else        {            block = seq->first;            if( block->start_index == 0 )            {                CV_CALL( icvGrowSeq( seq, 1 ));                block = seq->first;            }            delta_index = block->start_index;            block->count++;            block->start_index--;            block->data -= elem_size;            while( before_index > block->start_index - delta_index + block->count )            {                CvSeqBlock *next_block = block->next;                block_size = block->count * elem_size;                memmove( block->data, block->data + elem_size, block_size - elem_size );                memcpy( block->data + block_size - elem_size, next_block->data, elem_size );                block = next_block;                /* check that we don't fall in the infinite loop */                assert( block != seq->first );            }            before_index = (before_index - block->start_index + delta_index) * elem_size;            memmove( block->data, block->data + elem_size, before_index - elem_size );            ret_ptr = block->data + before_index - elem_size;            if( element )                memcpy( ret_ptr, element, elem_size );        }        seq->total = total + 1;    }    __END__;    return ret_ptr;}/* removes element from the sequence */CV_IMPL voidcvSeqRemove( CvSeq *seq, int index ){    char *ptr;    int elem_size;    int block_size;    CvSeqBlock *block;    int delta_index;    int total, front = 0;    CV_FUNCNAME( "cvSeqRemove" );    __BEGIN__;    if( !seq )        CV_ERROR( CV_StsNullPtr, "" );    total = seq->total;    index += index < 0 ? total : 0;    index -= index >= total ? total : 0;    if( (unsigned) index >= (unsigned) total )        CV_ERROR( CV_StsOutOfRange, "Invalid index" );    if( index == total - 1 )    {        cvSeqPop( seq, 0 );    }    else if( index == 0 )    {        cvSeqPopFront( seq, 0 );    }    else    {        block = seq->first;        elem_size = seq->elem_size;        delta_index = block->start_index;        while( block->start_index - delta_index + block->count <= index )            block = block->next;        ptr = block->data + (index - block->start_index + delta_index) * elem_size;        front = index < total >> 1;        if( !front )        {            block_size = block->count * elem_size - (int)(ptr - block->data);            while( block != seq->first->prev )  /* while not the last block */            {                CvSeqBlock *next_block = block->next;                memmove( ptr, ptr + elem_size, block_size - elem_size );                memcpy( ptr + block_size - elem_size, next_block->data, elem_size );                block = next_block;                ptr = block->data;                block_size = block->count * elem_size;            }            memmove( ptr, ptr + elem_size, block_size - elem_size );            seq->ptr -= elem_size;        }        else        {            ptr += elem_size;            block_size = (int)(ptr - block->data);            while( block != seq->first )            {                CvSeqBlock *prev_block = block->prev;                memmove( block->data + elem_size, block->data, block_size - elem_size );                block_size = prev_block->count * elem_size;                memcpy( block->data, prev_block->data + block_size - elem_size, elem_size );                block = prev_block;            }            memmove( block->data + elem_size, block->data, block_size - elem_size );            block->data += elem_size;            block->start_index++;        }        seq->total = total - 1;        if( --block->count == 0 )            icvFreeSeqBlock( seq, front );    }    __END__;}/* adds several elements to the end or in the beginning of sequence */CV_IMPL voidcvSeqPushMulti( CvSeq *seq, void *_elements, int count, int front ){    char *elements = (char *) _elements;    CV_FUNCNAME( "cvSeqPushMulti" );    __BEGIN__;    int elem_size;    if( !seq )        CV_ERROR( CV_StsNullPtr, "NULL sequence pointer" );    if( count < 0 )        CV_ERROR( CV_StsBadSize, "number of removed elements is negative" );    elem_size = seq->elem_size;    if( !front )    {        while( count > 0 )        {            int delta = (int)((seq->block_max - seq->ptr) / elem_size);            delta = MIN( delta, count );            if( delta > 0 )            {                seq->first->prev->count += delta;                seq->total += delta;                count -= delta;                delta *= elem_size;                if( elements )                {                    memcpy( seq->ptr, elements, delta );                    elements += delta;                }                seq->ptr += delta;            }            if( count > 0 )                CV_CALL( icvGrowSeq( seq, 0 ));        }    }    else    {        CvSeqBlock* block = seq->first;                while( count > 0 )        {            int delta;                        if( !block || block->start_index == 0 )            {                CV_CALL( icvGrowSeq( seq, 1 ));                block = seq->first;                assert( block->start_index > 0 );            }            delta = MIN( block->start_index, count );            count -= delta;            block->start_index -= delta;            block->count += delta;            seq->total += delta;            delta *= elem_size;            block->data -= delta;            if( elements )                memcpy( block->data, elements + count*elem_size, delta );        }    }    __END__;}/* removes several elements from the end of sequence */CV_IMPL voidcvSeqPopMulti( CvSeq *seq, void *_elements, int count, int front ){    char *elements = (char *) _elements;    CV_FUNCNAME( "cvSeqPopMulti" );    __BEGIN__;    if( !seq )        CV_ERROR( CV_StsNullPtr, "NULL sequence pointer" );    if( count < 0 )        CV_ERROR( CV_StsBadSize, "number of removed elements is negative" );    count = MIN( count, seq->total );    if( !front )    {        if( elements )            elements += count * seq->elem_size;        while( count > 0 )        {            int delta = seq->first->prev->count;            delta = MIN( delta, count );            assert( delta > 0 );            seq->first->prev->count -= delta;            seq->total -= delta;            count -= delta;            delta *= seq->elem_size;            seq->ptr -= delta;            if( elements )            {                elements -= delta;                memcpy( elements, seq->ptr, delta );            }            if( seq->first->prev->count == 0 )                icvFreeSeqBlock( seq, 0 );        }    }    else    {        while( count > 0 )        {            int delta = seq->first->count;            delta = MIN( delta, count );            assert( delta > 0 );            seq->first->count -= delta;            seq->total -= delta;            count -= delta;            seq->first->start_index += delta;            delta *= seq->elem_size;            if( elements )            {                memcpy( elements, seq->first->data, delta );                elements += delta;            }            seq->first->data += delta;            if( seq->first->count == 0 )                icvFreeSeqBlock( seq, 1 );        }    }    __END__;}/* removes all elements from the sequence */CV_IMPL voidcvClearSeq( CvSeq *seq ){    CV_FUNCNAME( "cvClearSeq" );    __BEGIN__;    if( !seq )        CV_ERROR( CV_StsNullPtr, "" );    cvSeqPopMulti( seq, 0, seq->total );    __END__;}CV_IMPL CvSeq*cvSeqSlice( const CvSeq* seq, CvSlice slice, CvMemStorage* storage, int copy_data ){    CvSeq* subseq = 0;        CV_FUNCNAME("cvSeqSlice");    __BEGIN__;        int elem_size, count, length;    CvSeqReader reader;    CvSeqBlock *block, *first_block = 0, *last_block = 0;        if( !CV_IS_SEQ(seq) )        CV_ERROR( CV_StsBadArg, "Invalid sequence header" );    if( !storage )    {        storage = seq->storage;        if( !storage )            CV_ERROR( CV_StsNullPtr, "NULL storage pointer" );    }    elem_size = seq->elem_size;    length = cvSliceLength( slice, seq );    if( slice.start_index < 0 )        slice.start_index += seq->total;    else if( slice.start_index >= seq->total )        slice.start_index -= seq->total;    if( (unsigned)length > (unsigned)seq->total ||        ((unsigned)slice.start_index >= (unsigned)seq->total && length != 0) )        CV_ERROR( CV_StsOutOfRange, "Bad sequence slice" );    CV_CALL( subseq = cvCreateSeq( seq->flags, seq->header_size, elem_size, storage ));    if( length > 0 )    {        cvStartReadSeq( seq, &reader, 0 );        cvSetSeqReaderPos( &reader, slice.start_index, 0 );        count = (int)((reader.block_max - reader.ptr)/elem_size);        do        {            int bl = MIN( count, length );                        if( !copy_data )            {                block = (CvSeqBlock*)cvMemStorageAlloc( storage, sizeof(*block) );                if( !first_block )                {                    first_block = subseq->first = block->prev = block->next = block;                    block->start_index = 0;                }                else                {                    block->prev = last_block;                    block->next = first_block;                    last_block->next = first_block->prev = block;                    block->start_index = last_block->start_index + last_block->count;                }                last_block = block;                block->data = reader.ptr;                block->count = bl;                subseq->total += bl;            }            else                cvSeqPushMulti( subseq, reader.ptr, bl, 0 );            length -= bl;            reader.block = reader.block->next;            reader.ptr = reader.block->data;            count = reader.block->count;        }        while( length > 0 );    }        __END__;    return subseq;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一三区三区四区免费在线看| 国产精品久久久久久久裸模| 夜夜嗨av一区二区三区四季av| 丰满少妇久久久久久久| 久久久久高清精品| 国v精品久久久网| 国产清纯在线一区二区www| 丁香婷婷综合网| 日韩伦理av电影| 欧美日韩一级二级| 日本aⅴ亚洲精品中文乱码| 精品久久久久久久久久久久包黑料 | 久久久国产精品不卡| 国产风韵犹存在线视精品| 国产精品国产三级国产| 色菇凉天天综合网| 蜜桃一区二区三区四区| 久久久久久久综合日本| 91美女福利视频| 三级久久三级久久久| 精品久久久久久久久久久久包黑料| 国产成a人亚洲精| 一区二区久久久| 精品区一区二区| 成人动漫在线一区| 性久久久久久久久久久久| 欧美精品一区二区三区很污很色的| 大美女一区二区三区| 亚洲国产欧美在线| 亚洲天堂网中文字| 欧美精选一区二区| 国产成人av电影在线播放| 亚洲一区二三区| 久久久激情视频| 在线不卡a资源高清| 国产成人8x视频一区二区| 午夜影视日本亚洲欧洲精品| 国产欧美va欧美不卡在线| 欧美日韩性生活| a在线播放不卡| 美国三级日本三级久久99| 亚洲乱码国产乱码精品精可以看| 欧美xxxxx牲另类人与| 色综合天天综合给合国产| 国产精品私人影院| 制服视频三区第一页精品| 99精品欧美一区| 国产精一品亚洲二区在线视频| 亚洲久草在线视频| 国产欧美一区二区精品婷婷 | 日韩久久免费av| 91蜜桃传媒精品久久久一区二区| 九色综合狠狠综合久久| 亚洲一区中文日韩| 中文字幕日韩一区| 国产亚洲精品精华液| 91精品国产日韩91久久久久久| 99精品在线观看视频| 狠狠色狠狠色合久久伊人| 亚洲午夜av在线| 亚洲色图欧洲色图婷婷| 国产日韩v精品一区二区| 欧美成人一级视频| 日韩一区二区精品| 欧美久久久久中文字幕| 91成人免费网站| 日本精品一级二级| 91在线观看一区二区| 成人午夜视频免费看| 国产在线麻豆精品观看| 日本免费新一区视频| 首页国产欧美久久| 亚洲国产成人tv| 亚洲成a人v欧美综合天堂 | 欧美电影精品一区二区| 777xxx欧美| 日韩一区二区三区高清免费看看| 精品视频全国免费看| 欧美视频在线一区二区三区 | 91精品欧美一区二区三区综合在| 欧美色手机在线观看| 欧美视频中文字幕| 欧美精品日韩综合在线| 在线电影一区二区三区| 欧美精品自拍偷拍| 欧美一区二区高清| 亚洲精品一区二区三区精华液| 日韩视频永久免费| 精品国产一区二区亚洲人成毛片| 精品欧美乱码久久久久久| 精品久久久久久最新网址| 久久久综合视频| 国产精品久久久久久久久果冻传媒| 欧美激情一区二区三区在线| 中文字幕精品一区二区精品绿巨人| 国产日产欧美一区| 亚洲人成在线观看一区二区| 一区二区三区在线免费播放| 亚洲.国产.中文慕字在线| 欧美aaa在线| 国产成人av自拍| 一本大道久久a久久综合| 欧美乱妇20p| 欧美成人aa大片| 久久精品亚洲乱码伦伦中文| 国产精品福利av| 视频在线观看一区| 国产麻豆9l精品三级站| 99免费精品视频| 欧美夫妻性生活| 久久久精品综合| 亚洲一区二区av在线| 麻豆精品国产传媒mv男同 | eeuss鲁片一区二区三区在线看| 在线观看日韩电影| 欧美大片拔萝卜| 亚洲女同女同女同女同女同69| 三级不卡在线观看| 成年人午夜久久久| 91精品国产91综合久久蜜臀| 国产欧美精品一区二区三区四区| 亚洲免费在线播放| 国内精品免费**视频| 99re视频这里只有精品| 欧美一区二区视频在线观看2020 | 国产乱码一区二区三区| 在线观看国产一区二区| 精品欧美乱码久久久久久1区2区 | 亚洲欧美一区二区三区极速播放 | 91免费视频大全| 欧美成人国产一区二区| 亚洲欧美激情插| 精品午夜久久福利影院| 在线看国产一区| 国产免费观看久久| 日产欧产美韩系列久久99| 99精品视频在线观看| 日韩美女天天操| 一区二区成人在线观看| 高潮精品一区videoshd| 日韩无一区二区| 亚洲成人精品在线观看| eeuss鲁片一区二区三区在线看| 精品国产髙清在线看国产毛片| 夜夜爽夜夜爽精品视频| www.亚洲色图.com| 精品国产乱子伦一区| 婷婷开心久久网| 在线免费精品视频| 亚洲精品网站在线观看| 国产成人综合在线观看| 91精品国产麻豆| 亚洲综合在线观看视频| 国产精品一区久久久久| 欧美不卡一区二区三区四区| 视频一区二区三区中文字幕| 成a人片亚洲日本久久| 国产日产欧美一区| 蜜桃免费网站一区二区三区| 91麻豆精品国产91久久久久久 | 精品视频一区 二区 三区| 亚洲日本乱码在线观看| 久久国产精品免费| 欧美日韩一级片在线观看| 一区二区三区不卡视频在线观看| 国产精品中文欧美| 久久免费电影网| 美女爽到高潮91| 日韩精品自拍偷拍| 亚洲一区二区三区国产| 99精品视频在线免费观看| 亚洲蜜臀av乱码久久精品| 岛国精品在线观看| 中文字幕精品在线不卡| 国产毛片精品一区| 国产亚洲精品中文字幕| 成人禁用看黄a在线| 久久精品欧美一区二区三区不卡| 韩国v欧美v日本v亚洲v| 欧美岛国在线观看| 国产盗摄视频一区二区三区| 欧美日韩国产另类一区| 日韩专区在线视频| 精品国产一区二区亚洲人成毛片| 蜜臀av一级做a爰片久久| 久久久不卡网国产精品二区| 日本午夜一本久久久综合| 欧美成人福利视频| 粉嫩高潮美女一区二区三区| 国产视频一区二区在线| 91在线无精精品入口| 亚洲国产欧美日韩另类综合| 欧美日韩一区二区三区四区| 麻豆91精品视频| 欧美精品一区二区三区四区| www.爱久久.com| 欧美日韩综合一区| 久久草av在线| 亚洲欧洲美洲综合色网| 日本精品视频一区二区|