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

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

?? cxarray.cpp

?? 將OpenCV移植到DSP上
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
    if( CV_IS_MAT_HDR(arr) || CV_IS_MATND_HDR(arr) || CV_IS_SPARSE_MAT_HDR(arr))
    {
        type = CV_MAT_TYPE( ((CvMat*)arr)->type );
    }
    else if( CV_IS_IMAGE(arr))
    {
        IplImage* img = (IplImage*)arr;
        type = CV_MAKETYPE( icvIplToCvDepth(img->depth), img->nChannels );
    }
    else
        CV_ERROR( CV_StsBadArg, "unrecognized or unsupported array type" );

    __END__;

    return type;
}

/****************************************************************************************\*                             Conversion to CvMat or IplImage                            *\****************************************************************************************/// convert array (CvMat or IplImage) to CvMatCV_IMPL CvMat*cvGetMat( const CvArr* array, CvMat* mat,          int* pCOI, int allowND ){    CvMat* result = 0;    CvMat* src = (CvMat*)array;    int coi = 0;        CV_FUNCNAME( "cvGetMat" );    __BEGIN__;    if( !mat || !src )        CV_ERROR( CV_StsNullPtr, "NULL array pointer is passed" );    if( CV_IS_MAT_HDR(src))    {        if( !src->data.ptr )            CV_ERROR( CV_StsNullPtr, "The matrix has NULL data pointer" );                result = (CvMat*)src;    }    else if( CV_IS_IMAGE_HDR(src) )    {        const IplImage* img = (const IplImage*)src;        int depth, order;        if( img->imageData == 0 )            CV_ERROR( CV_StsNullPtr, "The image has NULL data pointer" );        depth = icvIplToCvDepth( img->depth );        if( depth < 0 )            CV_ERROR_FROM_CODE( CV_BadDepth );        order = img->dataOrder & (img->nChannels > 1 ? -1 : 0);        if( img->roi )        {            if( order == IPL_DATA_ORDER_PLANE )            {                int type = depth;                if( img->roi->coi == 0 )                    CV_ERROR( CV_StsBadFlag,                    "Images with planar data layout should be used with COI selected" );                CV_CALL( cvInitMatHeader( mat, img->roi->height,                                   img->roi->width, type,                                   img->imageData + (img->roi->coi-1)*img->imageSize +                                   img->roi->yOffset*img->widthStep +                                   img->roi->xOffset*CV_ELEM_SIZE(type),                                   img->widthStep ));            }            else /* pixel order */            {                int type = CV_MAKETYPE( depth, img->nChannels );                coi = img->roi->coi;                if( img->nChannels > CV_CN_MAX )                    CV_ERROR( CV_BadNumChannels,                        "The image is interleaved and has over CV_CN_MAX channels" );                CV_CALL( cvInitMatHeader( mat, img->roi->height, img->roi->width,                                          type, img->imageData +                                          img->roi->yOffset*img->widthStep +                                          img->roi->xOffset*CV_ELEM_SIZE(type),                                          img->widthStep ));            }        }        else        {            int type = CV_MAKETYPE( depth, img->nChannels );            if( order != IPL_DATA_ORDER_PIXEL )                CV_ERROR( CV_StsBadFlag, "Pixel order should be used with coi == 0" );            CV_CALL( cvInitMatHeader( mat, img->height, img->width, type,                                      img->imageData, img->widthStep ));        }        result = mat;    }    else if( allowND && CV_IS_MATND_HDR(src) )    {        CvMatND* matnd = (CvMatND*)src;        int i;        int size1 = matnd->dim[0].size, size2 = 1;                if( !src->data.ptr )            CV_ERROR( CV_StsNullPtr, "Input array has NULL data pointer" );        if( !CV_IS_MAT_CONT( matnd->type ))            CV_ERROR( CV_StsBadArg, "Only continuous nD arrays are supported here" );        if( matnd->dims > 2 )            for( i = 1; i < matnd->dims; i++ )                size2 *= matnd->dim[i].size;        else            size2 = matnd->dims == 1 ? 1 : matnd->dim[1].size;        mat->refcount = 0;        mat->hdr_refcount = 0;        mat->data.ptr = matnd->data.ptr;        mat->rows = size1;        mat->cols = size2;        mat->type = CV_MAT_TYPE(matnd->type) | CV_MAT_MAGIC_VAL | CV_MAT_CONT_FLAG;        mat->step = size2*CV_ELEM_SIZE(matnd->type);        mat->step &= size1 > 1 ? -1 : 0;        icvCheckHuge( mat );        result = mat;    }    else    {        CV_ERROR( CV_StsBadFlag, "Unrecognized or unsupported array type" );    }    __END__;    if( pCOI )        *pCOI = coi;    return result;}// convert array (CvMat or IplImage) to IplImageCV_IMPL IplImage*cvGetImage( const CvArr* array, IplImage* img ){    IplImage* result = 0;    const IplImage* src = (const IplImage*)array;        CV_FUNCNAME( "cvGetImage" );    __BEGIN__;    int depth;    if( !img )        CV_ERROR_FROM_CODE( CV_StsNullPtr );    if( !CV_IS_IMAGE_HDR(src) )    {        const CvMat* mat = (const CvMat*)src;                if( !CV_IS_MAT_HDR(mat))            CV_ERROR_FROM_CODE( CV_StsBadFlag );        if( mat->data.ptr == 0 )            CV_ERROR_FROM_CODE( CV_StsNullPtr );        depth = cvCvToIplDepth(mat->type);        cvInitImageHeader( img, cvSize(mat->cols, mat->rows),                           depth, CV_MAT_CN(mat->type) );        cvSetData( img, mat->data.ptr, mat->step );        result = img;    }    else    {        result = (IplImage*)src;    }    __END__;    return result;}// Assigns external data to arrayCV_IMPL voidcvSetData( CvArr* arr, void* data, int step ){    CV_FUNCNAME( "cvSetData" );    __BEGIN__;    int pix_size, min_step;    if( CV_IS_MAT_HDR(arr) || CV_IS_MATND_HDR(arr) )        cvReleaseData( arr );    if( CV_IS_MAT_HDR( arr ))    {        CvMat* mat = (CvMat*)arr;            int type = CV_MAT_TYPE(mat->type);        pix_size = CV_ELEM_SIZE(type);        min_step = mat->cols*pix_size & ((mat->rows <= 1) - 1);        if( step != CV_AUTOSTEP )        {            if( step < min_step && data != 0 )                CV_ERROR_FROM_CODE( CV_BadStep );            mat->step = step & ((mat->rows <= 1) - 1);        }        else        {            mat->step = min_step;        }        mat->data.ptr = (uchar*)data;        mat->type = CV_MAT_MAGIC_VAL | type |                    (mat->step==min_step ? CV_MAT_CONT_FLAG : 0);        icvCheckHuge( mat );    }    else if( CV_IS_IMAGE_HDR( arr ))    {        IplImage* img = (IplImage*)arr;            pix_size = ((img->depth & 255) >> 3)*img->nChannels;        min_step = img->width*pix_size;        if( step != CV_AUTOSTEP && img->height > 1 )        {            if( step < min_step && data != 0 )                CV_ERROR_FROM_CODE( CV_BadStep );            img->widthStep = step;        }        else        {            img->widthStep = min_step;        }        img->imageSize = img->widthStep * img->height;        img->imageData = img->imageDataOrigin = (char*)data;        if( (((int)(size_t)data | step) & 7) == 0 &&            cvAlign(img->width * pix_size, 8) == step )        {            img->align = 8;        }        else        {            img->align = 4;        }    }    else if( CV_IS_MATND_HDR( arr ))    {        CvMatND* mat = (CvMatND*)arr;        int i;        int cur_step;            if( step != CV_AUTOSTEP )            CV_ERROR( CV_BadStep,            "For multidimensional array only CV_AUTOSTEP is allowed here" );        mat->data.ptr = (uchar*)data;        cur_step = CV_ELEM_SIZE(mat->type);        for( i = mat->dims - 1; i >= 0; i-- )        {            if( cur_step > INT_MAX )                CV_ERROR( CV_StsOutOfRange, "The array is too big" );            mat->dim[i].step = (int)cur_step;            cur_step *= mat->dim[i].size;        }    }    else    {        CV_ERROR( CV_StsBadArg, "unrecognized or unsupported array type" );    }    __END__;}// Retrieves essential information about image ROI or CvMat dataCV_IMPL voidcvGetRawData( const CvArr* arr, uchar** data, int* step, CvSize* roi_size ){    CV_FUNCNAME( "cvGetRawData" );    __BEGIN__;    if( CV_IS_MAT( arr ))    {        CvMat *mat = (CvMat*)arr;        if( step )            *step = mat->step;        if( data )            *data = mat->data.ptr;        if( roi_size )            *roi_size = cvGetMatSize( mat );    }    else if( CV_IS_IMAGE( arr ))    {        IplImage* img = (IplImage*)arr;        if( step )            *step = img->widthStep;        if( data )            CV_CALL( *data = cvPtr2D( img, 0, 0 ));        if( roi_size )        {            if( img->roi )            {                *roi_size = cvSize( img->roi->width, img->roi->height );            }            else            {                *roi_size = cvSize( img->width, img->height );            }        }    }    else if( CV_IS_MATND( arr ))    {        CvMatND* mat = (CvMatND*)arr;        if( !CV_IS_MAT_CONT( mat->type ))            CV_ERROR( CV_StsBadArg, "Only continuous nD arrays are supported here" );        if( data )            *data = mat->data.ptr;        if( roi_size || step )        {            int i, size1 = mat->dim[0].size, size2 = 1;            if( mat->dims > 2 )                for( i = 1; i < mat->dims; i++ )                    size1 *= mat->dim[i].size;            else                size2 = mat->dim[1].size;            if( roi_size )            {                roi_size->width = size2;                roi_size->height = size1;            }            if( step )                *step = size1 == 1 ? 0 : mat->dim[0].step;        }    }    else    {        CV_ERROR( CV_StsBadArg, "unrecognized or unsupported array type" );    }    __END__;}// Returns pointer to specified element of array (linear index is used)CV_IMPL  uchar*cvPtr1D( const CvArr* arr, int idx, int* _type ){    uchar* ptr = 0;        CV_FUNCNAME( "cvPtr1D" );    __BEGIN__;    if( CV_IS_MAT( arr ))    {        CvMat* mat = (CvMat*)arr;        int type = CV_MAT_TYPE(mat->type);        int pix_size = CV_ELEM_SIZE(type);        if( _type )            *_type = type;                // the first part is mul-free sufficient check        // that the index is within the matrix        if( (unsigned)idx >= (unsigned)(mat->rows + mat->cols - 1) &&            (unsigned)idx >= (unsigned)(mat->rows*mat->cols))            CV_ERROR( CV_StsOutOfRange, "index is out of range" );        if( CV_IS_MAT_CONT(mat->type))        {            ptr = mat->data.ptr + (size_t)idx*pix_size;        }        else        {            int row, col;            if( mat->cols == 1 )                row = idx, col = 0;            else                row = idx/mat->cols, col = idx - row*mat->cols;            ptr = mat->data.ptr + (size_t)row*mat->step + col*pix_size;        }    }    else if( CV_IS_IMAGE_HDR( arr ))    {        IplImage* img = (IplImage*)arr;        int width = !img->roi ? img->width : img->roi->width;        int y = idx/width, x = idx - y*width;        ptr = cvPtr2D( arr, y, x, _type );    }    else if( CV_IS_MATND( arr ))    {        CvMatND* mat = (CvMatND*)arr;        int j, type = CV_MAT_TYPE(mat->type);        size_t size = mat->dim[0].size;        if( _type )            *_type = type;        for( j = 1; j < mat->dims; j++ )            size *= mat->dim[j].size;        if((unsigned)idx >= (unsigned)size )            CV_ERROR( CV_StsOutOfRange, "index is out of range" );        if( CV_IS_MAT_CONT(mat->type))        {            int pix_size = CV_ELEM_SIZE(type);            ptr = mat->data.ptr + (size_t)idx*pix_size;        }        else        {            ptr = mat->data.ptr;            for( j = mat->dims - 1; j >= 0; j-- )            {                int sz = mat->dim[j].size;                if( sz )                {                    int t = idx/sz;                    ptr += (idx - t*sz)*mat->dim[j].step;                    idx = t;                }            }        }    }    else if( CV_IS_SPARSE_MAT( arr ))    {        CV_ERROR( CV_StsBadArg, "do not support sparse mat now" );    }    else    {        CV_ERROR( CV_StsBadArg, "unrecognized or unsupported array type" );    }    __END__;    return ptr;}// Returns pointer to specified element of 2d arrayCV_IMPL  uchar*cvPtr2D( const CvArr* arr, int y, int x, int* _type ){    uchar* ptr = 0;        CV_FUNCNAME( "cvPtr2D" );    __BEGIN__;    if( CV_IS_MAT( arr ))    {        CvMat* mat = (CvMat*)arr;        int type;        if( (unsigned)y >= (unsigned)(mat->rows) ||            (unsigned)x >= (unsigned)(mat->cols) )            CV_ERROR( CV_StsOutOfRange, "index is out of range" );        type = CV_MAT_TYPE(mat->type);        if( _type )            *_type = type;        ptr = mat->data.ptr + (size_t)y*mat->step + x*CV_ELEM_SIZE(type);    }    else if( CV_IS_IMAGE( arr ))    {        IplImage* img = (IplImage*)arr;        int pix_size = (img->depth & 255) >> 3;        int width, height;        ptr = (uchar*)img->imageData;        if( img->dataOrder == 0 )            pix_size *= img->nChannels;        if( img->roi )        {            width = img->roi->width;            height = img->roi->height;            ptr += img->roi->yOffset*img->widthStep +                   img->roi->xOffset*pix_size;            if( img->dataOrder )            {                int coi = img->roi->coi;                if( !coi )                    CV_ERROR( CV_BadCOI,                        "COI must be non-null in case of planar images" );                ptr += (coi - 1)*img->imageSize;            }        }        else        {            width = img->width;            height = img->height;        }        if( (unsigned)y >= (unsigned)height ||            (unsigned)x >= (unsigned)width )            CV_ERROR( CV_StsOutOfRange, "index is out of range" );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久亚洲毛片| 欧美日本在线观看| 久久久久久久久99精品| 国产尤物一区二区| 日本一区二区三级电影在线观看| 成人午夜激情片| 一二三四社区欧美黄| 欧美日韩午夜在线| 久久99久久精品| 国产精品久久久久久久久动漫| 99久久er热在这里只有精品66| 亚洲一二三四在线| 欧美一区二区三区的| 国产精品一品视频| 亚洲欧洲一区二区三区| 欧美性三三影院| 久久99久久99精品免视看婷婷| 国产精品免费丝袜| 不卡的电影网站| 天天色综合天天| 国产日产欧美精品一区二区三区| 色综合天天综合色综合av| 日韩电影网1区2区| 亚洲国产激情av| 91精品国产全国免费观看| 高清国产一区二区三区| 丝袜亚洲另类欧美| 久久久久久久av麻豆果冻| 欧美天堂一区二区三区| 国产精品亚洲人在线观看| 亚洲五码中文字幕| 国产欧美精品国产国产专区| 538在线一区二区精品国产| 粉嫩一区二区三区在线看| 日日骚欧美日韩| 日韩伦理av电影| 精品国免费一区二区三区| 色一情一乱一乱一91av| 国产精品一区二区在线观看不卡 | 亚洲国产视频在线| 国产亚洲欧美日韩日本| 在线观看91精品国产麻豆| 粉嫩av一区二区三区在线播放 | 另类小说综合欧美亚洲| 国产精品国产成人国产三级 | 亚洲国产精品精华液ab| 91精品国产福利在线观看| 色婷婷av一区| 成人免费视频国产在线观看| 麻豆高清免费国产一区| 亚洲国产综合在线| 亚洲精品国产视频| 欧美激情中文字幕| 26uuu国产在线精品一区二区| 欧美日韩免费视频| 91蜜桃传媒精品久久久一区二区| 精品一区二区三区免费视频| 午夜精品久久久久久久久久| 亚洲欧美日韩久久| 国产精品久久久久久久裸模 | 成人激情小说网站| 狠狠色丁香婷婷综合久久片| 日韩黄色免费电影| 午夜国产不卡在线观看视频| 一区二区三区在线观看欧美| 亚洲三级电影网站| 国产精品国产三级国产aⅴ无密码| 国产亚洲va综合人人澡精品| 日韩限制级电影在线观看| 欧美精品视频www在线观看| 日本高清视频一区二区| 日本精品免费观看高清观看| 91一区二区三区在线播放| 99热精品一区二区| 不卡在线视频中文字幕| 99国产精品久久久久久久久久| 成人黄色在线看| av网站一区二区三区| 91在线无精精品入口| 91福利在线播放| 欧美视频第二页| 欧美一区日韩一区| 精品久久久久久久久久久久久久久久久 | 国产揄拍国内精品对白| 狠狠色狠狠色综合| 国产成人亚洲精品青草天美| 国产成人在线色| a美女胸又www黄视频久久| 99久久99久久久精品齐齐| 不卡一二三区首页| 在线中文字幕一区| 7878成人国产在线观看| 日韩午夜激情视频| 久久久久久97三级| 自拍偷拍欧美精品| 亚洲一区免费在线观看| 日韩电影一二三区| 国产乱子伦一区二区三区国色天香| 国产精品1区2区3区在线观看| 波多野结衣一区二区三区 | gogo大胆日本视频一区| 色综合中文字幕国产| 色综合久久久久综合99| 欧美日韩精品电影| 精品电影一区二区三区| 中文字幕在线播放不卡一区| 亚洲一二三四区| 国产一区二区导航在线播放| 91免费国产视频网站| 日韩限制级电影在线观看| 国产欧美日韩不卡| 五月婷婷久久综合| 国产精品1区二区.| 欧美高清性hdvideosex| 国产欧美日韩不卡免费| 五月综合激情婷婷六月色窝| 国产一区视频导航| 欧美色区777第一页| 久久综合中文字幕| 亚洲成人久久影院| 成人一区二区三区视频在线观看| 91福利精品视频| 久久久不卡网国产精品二区| 亚洲一二三区视频在线观看| 国产高清亚洲一区| 91 com成人网| 亚洲精品成人精品456| 精品亚洲成a人| 欧美日韩免费不卡视频一区二区三区| 精品国产3级a| 日本中文字幕不卡| 91久久精品一区二区三区| 国产亚洲人成网站| 日韩精品一二三| 91美女在线观看| 国产欧美精品日韩区二区麻豆天美| 日本美女视频一区二区| 色国产综合视频| 中文字幕日韩一区| 国产精品一区二区久激情瑜伽| 91精品福利在线一区二区三区 | 午夜欧美在线一二页| 成人app软件下载大全免费| 精品日韩欧美在线| 日韩激情一区二区| 在线看不卡av| 亚洲欧洲日产国码二区| 国产激情一区二区三区四区| 精品日韩成人av| 美腿丝袜亚洲三区| 欧美乱妇一区二区三区不卡视频| 亚洲视频在线观看一区| 成人免费看的视频| 中文字幕欧美国产| 国产成人精品三级| 久久久精品国产免大香伊| 久久99国产精品免费| 精品国产一区二区三区久久影院| 日日夜夜一区二区| 在线成人高清不卡| 亚洲国产你懂的| 欧美日韩国产美| 视频一区视频二区中文| 欧美日韩免费一区二区三区 | 香蕉成人啪国产精品视频综合网| 91色porny蝌蚪| 亚洲黄色录像片| 欧美伊人久久久久久午夜久久久久| 亚洲男同性恋视频| 91免费视频观看| 亚洲福利视频一区| 欧美日韩国产在线播放网站| 亚洲成av人影院| 欧美一区二区三区精品| 久久99国内精品| 国产欧美日韩不卡| 91一区在线观看| 香蕉成人伊视频在线观看| 欧美日韩亚洲综合一区| 免费看日韩a级影片| 久久综合九色综合久久久精品综合| 韩国精品主播一区二区在线观看| 久久精品免视看| 97se狠狠狠综合亚洲狠狠| 亚洲一区二区av在线| 欧美一区二区久久| 风流少妇一区二区| 亚洲三级免费电影| 这里只有精品电影| 国内精品国产成人| 国产精品第四页| 欧美日韩在线播放| 激情国产一区二区 | 一区二区三区精密机械公司| 欧美性欧美巨大黑白大战| 免费成人在线网站| 日本一区二区视频在线观看| 91理论电影在线观看| 午夜精品一区在线观看| 国产欧美日韩在线|