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

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

?? cxdatastructs.cpp

?? 將OpenCV移植到DSP上
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// Remove slice from the middle of the sequence// !!! TODO !!! Implement more efficient algorithmCV_IMPL voidcvSeqRemoveSlice( CvSeq* seq, CvSlice slice ){    CV_FUNCNAME("cvSeqRemoveSlice");    __BEGIN__;    int total, length;    if( !CV_IS_SEQ(seq) )        CV_ERROR( CV_StsBadArg, "Invalid sequence header" );    length = cvSliceLength( slice, seq );    total = seq->total;    if( slice.start_index < 0 )        slice.start_index += total;    else if( slice.start_index >= total )        slice.start_index -= total;    if( (unsigned)slice.start_index >= (unsigned)total )        CV_ERROR( CV_StsOutOfRange, "start slice index is out of range" );    slice.end_index = slice.start_index + length;    if( slice.end_index < total )    {        CvSeqReader reader_to, reader_from;        int elem_size = seq->elem_size;        cvStartReadSeq( seq, &reader_to );        cvStartReadSeq( seq, &reader_from );        if( slice.start_index > total - slice.end_index )        {            int i, count = seq->total - slice.end_index;            cvSetSeqReaderPos( &reader_to, slice.start_index );            cvSetSeqReaderPos( &reader_from, slice.end_index );            for( i = 0; i < count; i++ )            {                CV_MEMCPY_AUTO( reader_to.ptr, reader_from.ptr, elem_size );                CV_NEXT_SEQ_ELEM( elem_size, reader_to );                CV_NEXT_SEQ_ELEM( elem_size, reader_from );            }            cvSeqPopMulti( seq, 0, slice.end_index - slice.start_index );        }        else        {            int i, count = slice.start_index;            cvSetSeqReaderPos( &reader_to, slice.end_index );            cvSetSeqReaderPos( &reader_from, slice.start_index );            for( i = 0; i < count; i++ )            {                CV_PREV_SEQ_ELEM( elem_size, reader_to );                CV_PREV_SEQ_ELEM( elem_size, reader_from );                CV_MEMCPY_AUTO( reader_to.ptr, reader_from.ptr, elem_size );            }            cvSeqPopMulti( seq, 0, slice.end_index - slice.start_index, 1 );        }    }    else    {        cvSeqPopMulti( seq, 0, total - slice.start_index );        cvSeqPopMulti( seq, 0, slice.end_index - total, 1 );    }    __END__;}// Inserts a new sequence into the middle of another sequence// !!! TODO !!! Implement more efficient algorithmCV_IMPL voidcvSeqInsertSlice( CvSeq* seq, int index, const CvArr* from_arr ){    CvSeqReader reader_to, reader_from;    int i, elem_size, total, from_total;        CV_FUNCNAME("cvSeqInsertSlice");    __BEGIN__;    CvSeq from_header, *from = (CvSeq*)from_arr;    CvSeqBlock block;    if( !CV_IS_SEQ(seq) )        CV_ERROR( CV_StsBadArg, "Invalid destination sequence header" );    if( !CV_IS_SEQ(from))    {        CvMat* mat = (CvMat*)from;        if( !CV_IS_MAT(mat))            CV_ERROR( CV_StsBadArg, "Source is not a sequence nor matrix" );        if( !CV_IS_MAT_CONT(mat->type) || (mat->rows != 1 && mat->cols != 1) )            CV_ERROR( CV_StsBadArg, "The source array must be 1d coninuous vector" );        CV_CALL( from = cvMakeSeqHeaderForArray( CV_SEQ_KIND_GENERIC, sizeof(from_header),                                                 CV_ELEM_SIZE(mat->type),                                                 mat->data.ptr, mat->cols + mat->rows - 1,                                                 &from_header, &block ));    }    if( seq->elem_size != from->elem_size )        CV_ERROR( CV_StsUnmatchedSizes,        "Sizes of source and destination sequences' elements are different" );    from_total = from->total;    if( from_total == 0 )        EXIT;    total = seq->total;    index += index < 0 ? total : 0;    index -= index > total ? total : 0;    if( (unsigned)index > (unsigned)total )        CV_ERROR( CV_StsOutOfRange, "" );    elem_size = seq->elem_size;    if( index < (total >> 1) )    {        cvSeqPushMulti( seq, 0, from_total, 1 );        cvStartReadSeq( seq, &reader_to );        cvStartReadSeq( seq, &reader_from );        cvSetSeqReaderPos( &reader_from, from_total );        for( i = 0; i < index; i++ )        {            CV_MEMCPY_AUTO( reader_to.ptr, reader_from.ptr, elem_size );            CV_NEXT_SEQ_ELEM( elem_size, reader_to );            CV_NEXT_SEQ_ELEM( elem_size, reader_from );        }    }    else    {        cvSeqPushMulti( seq, 0, from_total );        cvStartReadSeq( seq, &reader_to );        cvStartReadSeq( seq, &reader_from );        cvSetSeqReaderPos( &reader_from, total );        cvSetSeqReaderPos( &reader_to, seq->total );        for( i = 0; i < total - index; i++ )        {            CV_PREV_SEQ_ELEM( elem_size, reader_to );            CV_PREV_SEQ_ELEM( elem_size, reader_from );            CV_MEMCPY_AUTO( reader_to.ptr, reader_from.ptr, elem_size );        }    }    cvStartReadSeq( from, &reader_from );    cvSetSeqReaderPos( &reader_to, index );    for( i = 0; i < from_total; i++ )    {        CV_MEMCPY_AUTO( reader_to.ptr, reader_from.ptr, elem_size );        CV_NEXT_SEQ_ELEM( elem_size, reader_to );        CV_NEXT_SEQ_ELEM( elem_size, reader_from );    }    __END__;}// Sort the sequence using user-specified comparison function.// The semantics is similar to qsort() function. The code is based// on BSD system qsort()://    * Copyright (c) 1992, 1993//    *  The Regents of the University of California.  All rights reserved.//    *//    * Redistribution and use in source and binary forms, with or without//    * modification, are permitted provided that the following conditions//    * are met://    * 1. Redistributions of source code must retain the above copyright//    *    notice, this list of conditions and the following disclaimer.//    * 2. Redistributions 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.//    * 3. All advertising materials mentioning features or use of this software//    *    must display the following acknowledgement://    *  This product includes software developed by the University of//    *  California, Berkeley and its contributors.//    * 4. Neither the name of the University nor the names of its contributors//    *    may be used to endorse or promote products derived from this software//    *    without specific prior written permission.//    *//    * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.typedef struct CvSeqReaderPos{    CvSeqBlock* block;    char* ptr;    char* block_min;    char* block_max;}CvSeqReaderPos;#define CV_SAVE_READER_POS( reader, pos )   \{                                           \    (pos).block = (reader).block;           \    (pos).ptr = (reader).ptr;               \    (pos).block_min = (reader).block_min;   \    (pos).block_max = (reader).block_max;   \}#define CV_RESTORE_READER_POS( reader, pos )\{                                           \    (reader).block = (pos).block;           \    (reader).ptr = (pos).ptr;               \    (reader).block_min = (pos).block_min;   \    (reader).block_max = (pos).block_max;   \}inline char*icvMed3( char* a, char* b, char* c, CvCmpFunc cmp_func, void* aux ){    return cmp_func(a, b, aux) < 0 ?      (cmp_func(b, c, aux) < 0 ? b : cmp_func(a, c, aux) < 0 ? c : a)     :(cmp_func(b, c, aux) > 0 ? b : cmp_func(a, c, aux) < 0 ? a : c);}CV_IMPL voidcvSeqSort( CvSeq* seq, CvCmpFunc cmp_func, void* aux ){             int elem_size;    int isort_thresh = 7;    CvSeqReader left, right;    int sp = 0;    struct    {        CvSeqReaderPos lb;        CvSeqReaderPos ub;    }    stack[48];    CV_FUNCNAME( "cvSeqSort" );    __BEGIN__;        if( !CV_IS_SEQ(seq) )        CV_ERROR( !seq ? CV_StsNullPtr : CV_StsBadArg, "Bad input sequence" );    if( !cmp_func )        CV_ERROR( CV_StsNullPtr, "Null compare function" );    if( seq->total <= 1 )        EXIT;    elem_size = seq->elem_size;    isort_thresh *= elem_size;    cvStartReadSeq( seq, &left, 0 );    right = left;    CV_SAVE_READER_POS( left, stack[0].lb );    CV_PREV_SEQ_ELEM( elem_size, right );    CV_SAVE_READER_POS( right, stack[0].ub );    while( sp >= 0 )    {        CV_RESTORE_READER_POS( left, stack[sp].lb );        CV_RESTORE_READER_POS( right, stack[sp].ub );        sp--;        for(;;)        {            int i, n, m;            CvSeqReader ptr, ptr2;            if( left.block == right.block )                n = (int)(right.ptr - left.ptr) + elem_size;            else            {                n = cvGetSeqReaderPos( &right );                n = (n - cvGetSeqReaderPos( &left ) + 1)*elem_size;            }            if( n <= isort_thresh )            {            insert_sort:                ptr = ptr2 = left;                CV_NEXT_SEQ_ELEM( elem_size, ptr );                CV_NEXT_SEQ_ELEM( elem_size, right );                while( ptr.ptr != right.ptr )                {                    ptr2.ptr = ptr.ptr;                    if( ptr2.block != ptr.block )                    {                        ptr2.block = ptr.block;                        ptr2.block_min = ptr.block_min;                        ptr2.block_max = ptr.block_max;                    }                    while( ptr2.ptr != left.ptr )                    {                        char* cur = ptr2.ptr;                        CV_PREV_SEQ_ELEM( elem_size, ptr2 );                        if( cmp_func( ptr2.ptr, cur, aux ) <= 0 )                            break;                        CV_SWAP_ELEMS( ptr2.ptr, cur, elem_size );                    }                    CV_NEXT_SEQ_ELEM( elem_size, ptr );                }                break;            }            else            {                CvSeqReader left0, left1, right0, right1;                CvSeqReader tmp0, tmp1;                char *m1, *m2, *m3, *pivot;                int swap_cnt = 0;                int l, l0, l1, r, r0, r1;                left0 = tmp0 = left;                right0 = right1 = right;                n /= elem_size;                                if( n > 40 )                {                    int d = n / 8;                    char *p1, *p2, *p3;                    p1 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, d, 1 );                    p2 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, d, 1 );                    p3 = tmp0.ptr;                    m1 = icvMed3( p1, p2, p3, cmp_func, aux );                    cvSetSeqReaderPos( &tmp0, (n/2) - d*3, 1 );                    p1 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, d, 1 );                    p2 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, d, 1 );                    p3 = tmp0.ptr;                    m2 = icvMed3( p1, p2, p3, cmp_func, aux );                    cvSetSeqReaderPos( &tmp0, n - 1 - d*3 - n/2, 1 );                    p1 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, d, 1 );                    p2 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, d, 1 );                    p3 = tmp0.ptr;                    m3 = icvMed3( p1, p2, p3, cmp_func, aux );                }                else                {                    m1 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, n/2, 1 );                    m2 = tmp0.ptr;                    cvSetSeqReaderPos( &tmp0, n - 1 - n/2, 1 );                    m3 = tmp0.ptr;                }                pivot = icvMed3( m1, m2, m3, cmp_func, aux );                left = left0;                if( pivot != left.ptr )                {                    CV_SWAP_ELEMS( pivot, left.ptr, elem_size );                    pivot = left.ptr;                }                CV_NEXT_SEQ_ELEM( elem_size, left );                left1 = left;                for(;;)                {                    while( left.ptr != right.ptr && (r = cmp_func(left.ptr, pivot, aux)) <= 0 )                    {                        if( r == 0 )                        {                            if( left1.ptr != left.ptr )                                CV_SWAP_ELEMS( left1.ptr, left.ptr, elem_size );                            swap_cnt = 1;                            CV_NEXT_SEQ_ELEM( elem_size, left1 );                        }                        CV_NEXT_SEQ_ELEM( elem_size, left );                    }                    while( left.ptr != right.ptr && (r = cmp_func(right.ptr,pivot, aux)) >= 0 )                    {                        if( r == 0 )                        {                            if( right1.ptr != right.ptr )                                CV_SWAP_ELEMS( right1.ptr, right.ptr, elem_size );                            swap_cnt = 1;                            CV_PREV_SEQ_ELEM( elem_size, right1 );                        }                        CV_PREV_SEQ_ELEM( elem_size, right );                    }                    if( left.ptr == right.ptr )                    {                        r = cmp_func(left.ptr, pivot, aux);                        if( r == 0 )                        {                            if( left1.ptr != left.ptr )                                CV_SWAP_ELEMS( left1.ptr, left.ptr, elem_size );                            swap_cnt = 1;                            CV_NEXT_SEQ_ELEM( elem_size, left1 );                        }                        if( r <= 0 )                        {                            CV_NEXT_SEQ_ELEM( elem_size, left );                        }                        else                        {                            CV_PREV_SEQ_ELEM( elem_size, right );                        }                        break;                    }                    CV_SWAP_ELEMS( left.ptr, right.ptr, elem_size );                    CV_NEXT_SEQ_ELEM( elem_size, left );                    r = left.ptr == right.ptr;                    CV_PREV_SEQ_ELEM( elem_size, right );                    swap_cnt = 1;                    if( r )                        break;                }                if( swap_cnt == 0 )                {                    left = left0, right = right0;                    goto insert_sort;                }                l = cvGetSeqReaderPos( &left );                if( l == 0 )                    l = seq->total;                l0 = cvGetSeqReaderPos( &left0 );                l1 = cvGetSeqReaderPos( &left1 );                if( l1 == 0 )                    l1 = seq->total;                                n = MIN( l - l1, l1 - l0 );                if( n > 0 )                {                    tmp0 = left0;                    tmp1 = left;                    cvSetSeqReaderPos( &tmp1, 0-n, 1 );                    for( i = 0; i < n; i++ )                    {                        CV_SWAP_ELEMS( tmp0.ptr, tmp1.ptr, elem_size );                        CV_NEXT_SEQ_ELEM( elem_size, tmp0 );                        CV_NEXT_SEQ_ELEM( elem_size, tmp1 );                    }                }                r = cvGetSeqReaderPos( &right );                r0 = cvGetSeqReaderPos( &right0 );                r1 = cvGetSeqReaderPos( &right1 );                m = MIN( r0 - r1, r1 - r );                if( m > 0 )                {                    tmp0 = left;                    tmp1 = right0;                    cvSetSeqReaderPos( &tmp1, 1

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人午夜高潮毛片| 欧美精品一区二区在线观看| 91精品国产综合久久精品麻豆| 欧美成人一区二区三区在线观看 | 日韩一区二区在线播放| 国产女人18毛片水真多成人如厕 | 亚洲一区中文在线| 国产综合久久久久影院| 欧美亚洲国产一区二区三区| 国产目拍亚洲精品99久久精品| 日韩精品1区2区3区| 色狠狠av一区二区三区| 中文字幕一区av| 国产成人鲁色资源国产91色综 | 裸体一区二区三区| 欧美吻胸吃奶大尺度电影| 国产蜜臀97一区二区三区| 美女网站色91| 日韩欧美在线观看一区二区三区| 一区二区三区产品免费精品久久75| 成人一区二区在线观看| 精品久久久久久久久久久久久久久| 日韩精品一二三| 欧美视频在线不卡| 亚洲欧美日韩国产中文在线| av网站一区二区三区| 久久亚洲欧美国产精品乐播 | 成人aa视频在线观看| 精品国产凹凸成av人网站| 日韩福利电影在线观看| 69堂国产成人免费视频| 日韩在线一二三区| 欧美日韩一本到| 日本vs亚洲vs韩国一区三区| 91麻豆精品国产91| 美日韩一区二区| 日韩精品专区在线影院观看| 另类小说一区二区三区| 精品国产乱码久久| 国产成人免费在线观看| 国产精品久久久久久久第一福利| 成人一级视频在线观看| 国产精品色哟哟网站| 色偷偷久久人人79超碰人人澡| 亚洲精品日韩一| 欧美日韩一级二级| 美女mm1313爽爽久久久蜜臀| 久久久国际精品| 99精品桃花视频在线观看| 亚洲国产精品一区二区久久恐怖片| 欧美日韩一级片在线观看| 日本网站在线观看一区二区三区| 26uuu亚洲| a美女胸又www黄视频久久| 亚洲综合偷拍欧美一区色| 欧美猛男gaygay网站| 麻豆成人av在线| 国产精品嫩草久久久久| 日本韩国欧美一区| 麻豆精品新av中文字幕| 国产女主播一区| 欧美在线观看视频在线| 久久99精品久久久久久动态图| 亚洲国产成人一区二区三区| 欧美色图激情小说| 国产一区二区三区在线观看精品 | 日本亚洲天堂网| 国产欧美日韩在线视频| 欧美在线一区二区| 国产一区二区三区四区五区入口| 一区二区三区小说| 亚洲精品在线免费播放| 日本久久电影网| 国产乱理伦片在线观看夜一区| 亚洲午夜在线电影| 中文一区二区在线观看| 5月丁香婷婷综合| 成人小视频免费在线观看| 天天av天天翘天天综合网色鬼国产 | 亚洲国产成人午夜在线一区| 欧美精品三级日韩久久| 91免费观看国产| 激情综合亚洲精品| 偷拍自拍另类欧美| 亚洲女性喷水在线观看一区| 久久色.com| 91精品国产aⅴ一区二区| 99国产精品一区| 国产精品一区二区久激情瑜伽| 婷婷亚洲久悠悠色悠在线播放| 亚洲精品一二三四区| 国产精品亲子乱子伦xxxx裸| 欧美成人激情免费网| 欧美日韩午夜在线视频| 色老汉av一区二区三区| 91麻豆国产在线观看| 国产河南妇女毛片精品久久久 | 91在线你懂得| 国产精品一区在线观看你懂的| 亚洲二区视频在线| 成人欧美一区二区三区黑人麻豆 | 色综合夜色一区| 国产成a人亚洲精| 久久99精品国产91久久来源| 蜜臂av日日欢夜夜爽一区| 日韩精品一级二级| 日本最新不卡在线| 日本欧美一区二区三区乱码| 全部av―极品视觉盛宴亚洲| 视频在线观看国产精品| 日韩成人免费在线| 玖玖九九国产精品| 老司机午夜精品| 人人狠狠综合久久亚洲| 视频在线观看一区| 捆绑紧缚一区二区三区视频| 国内精品嫩模私拍在线| 国产在线播放一区| 粉嫩欧美一区二区三区高清影视| 国产激情91久久精品导航| 国产成人在线免费| k8久久久一区二区三区| 91亚洲国产成人精品一区二三| 91麻豆福利精品推荐| 在线不卡中文字幕播放| 欧美一级欧美一级在线播放| 精品日韩一区二区三区| 久久综合久久综合久久综合| 国产农村妇女毛片精品久久麻豆| 综合欧美一区二区三区| 一区二区在线观看免费视频播放| 五月婷婷综合激情| 激情文学综合丁香| 成人精品一区二区三区中文字幕| 91搞黄在线观看| 精品卡一卡二卡三卡四在线| 国产日韩欧美制服另类| 亚洲欧洲中文日韩久久av乱码| 亚洲自拍另类综合| 久久精品国内一区二区三区| 国产999精品久久久久久绿帽| 91麻豆蜜桃一区二区三区| 制服视频三区第一页精品| 国产欧美一区二区在线观看| 一区二区三区av电影 | 黄色小说综合网站| 成人免费视频caoporn| 欧美性一二三区| 亚洲精品在线一区二区| 亚洲人成电影网站色mp4| 日韩激情在线观看| av成人免费在线观看| 制服丝袜日韩国产| 国产精品五月天| 爽爽淫人综合网网站| www.综合网.com| 日韩欧美国产综合在线一区二区三区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 处破女av一区二区| 制服丝袜国产精品| 亚洲免费三区一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 在线观看亚洲精品视频| 国产偷国产偷精品高清尤物| 亚洲国产精品久久久久秋霞影院| 国产露脸91国语对白| 欧美日韩亚洲另类| 自拍偷在线精品自拍偷无码专区 | 久久久久亚洲综合| 亚洲不卡一区二区三区| 91麻豆精品一区二区三区| 久久综合九色综合97婷婷女人| 香蕉成人啪国产精品视频综合网 | 国产不卡一区视频| 91精品国产一区二区三区香蕉| 成人免费小视频| 国产99久久久国产精品免费看| 日韩视频一区二区在线观看| 一级做a爱片久久| 99久久精品国产毛片| 国产欧美一区二区三区在线老狼| 免费看日韩精品| 欧美一区二区高清| 亚洲一区二区免费视频| 91麻豆国产香蕉久久精品| 国产精品午夜久久| 成人av第一页| 国产精品免费av| 风间由美一区二区三区在线观看 | 欧美高清在线一区二区| 国产一区视频导航| 欧美xxxxxxxxx| 久久99精品久久久久久动态图| 欧美一区二区三区免费| 日韩国产一区二| 欧美一区二区三区在线观看| 日韩国产精品久久久久久亚洲| 欧美丰满少妇xxxbbb| 日韩精品一级中文字幕精品视频免费观看 | 婷婷激情综合网|