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

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

?? cxarithm.cpp

?? 將OpenCV移植到DSP上
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/*M///////////////////////////////////////////////////////////////////////////////////////
//
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install,
//  copy or use the software.
//
//
//                        Intel License Agreement
//                For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
//   * Redistribution's of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//
//   * Redistribution's 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.
//
//   * The name of Intel Corporation may not be used to endorse or promote products
//     derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders 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 Intel Corporation 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.
//
//M*/

/* ////////////////////////////////////////////////////////////////////
//
//  CvMat arithmetic operations: +, - ...
//
// */

#include "_cxcore.h"

/****************************************************************************************\
*                      Arithmetic operations (+, -) without mask                         *
\****************************************************************************************/

#define ICV_DEF_BIN_ARI_OP_CASE( __op__, worktype, cast_macro, len )\
{                                                                   \
    int i;                                                          \
                                                                    \
    for( i = 0; i <= (len) - 4; i += 4 )                            \
    {                                                               \
        worktype t0 = __op__((src1)[i], (src2)[i]);                 \
        worktype t1 = __op__((src1)[i+1], (src2)[i+1]);             \
                                                                    \
        (dst)[i] = cast_macro( t0 );                                \
        (dst)[i+1] = cast_macro( t1 );                              \
                                                                    \
        t0 = __op__((src1)[i+2],(src2)[i+2]);                       \
        t1 = __op__((src1)[i+3],(src2)[i+3]);                       \
                                                                    \
        (dst)[i+2] = cast_macro( t0 );                              \
        (dst)[i+3] = cast_macro( t1 );                              \
    }                                                               \
                                                                    \
    for( ; i < (len); i++ )                                         \
    {                                                               \
        worktype t0 = __op__((src1)[i],(src2)[i]);                  \
        (dst)[i] = cast_macro( t0 );                                \
    }                                                               \
}

#define ICV_DEF_BIN_ARI_OP_2D( __op__, name, type, worktype, cast_macro )   \
IPCVAPI_IMPL( CvStatus, name,                                               \
    ( const type* src1, int step1, const type* src2, int step2,             \
      type* dst, int step, CvSize size ),                                   \
      (src1, step1, src2, step2, dst, step, size) )                         \
{                                                                           \
    step1/=sizeof(src1[0]); step2/=sizeof(src2[0]); step/=sizeof(dst[0]);   \
                                                                            \
    if( size.width == 1 )                                                   \
    {                                                                       \
        for( ; size.height--; src1 += step1, src2 += step2, dst += step )   \
        {                                                                   \
            worktype t0 = __op__((src1)[0],(src2)[0]);                      \
            (dst)[0] = cast_macro( t0 );                                    \
        }                                                                   \
    }                                                                       \
    else                                                                    \
    {                                                                       \
        for( ; size.height--; src1 += step1, src2 += step2, dst += step )   \
        {                                                                   \
            ICV_DEF_BIN_ARI_OP_CASE( __op__, worktype,                      \
                                     cast_macro, size.width );              \
        }                                                                   \
    }                                                                       \
                                                                            \
    return CV_OK;                                                           \
}


#define ICV_DEF_BIN_ARI_OP_2D_SFS(__op__, name, type, worktype, cast_macro) \
IPCVAPI_IMPL( CvStatus, name,                                               \
    ( const type* src1, int step1, const type* src2, int step2,             \
      type* dst, int step, CvSize size, int /*scalefactor*/ ),              \
      (src1, step1, src2, step2, dst, step, size, 0) )                      \
{                                                                           \
    step1/=sizeof(src1[0]); step2/=sizeof(src2[0]); step/=sizeof(dst[0]);   \
                                                                            \
    if( size.width == 1 )                                                   \
    {                                                                       \
        for( ; size.height--; src1 += step1, src2 += step2, dst += step )   \
        {                                                                   \
            worktype t0 = __op__((src1)[0],(src2)[0]);                      \
            (dst)[0] = cast_macro( t0 );                                    \
        }                                                                   \
    }                                                                       \
    else                                                                    \
    {                                                                       \
        for( ; size.height--; src1 += step1, src2 += step2, dst += step )   \
        {                                                                   \
            ICV_DEF_BIN_ARI_OP_CASE( __op__, worktype,                      \
                                     cast_macro, size.width );              \
        }                                                                   \
    }                                                                       \
                                                                            \
    return CV_OK;                                                           \
}


#define ICV_DEF_UN_ARI_OP_CASE( __op__, worktype, cast_macro,               \
                                src, scalar, dst, len )                     \
{                                                                           \
    int i;                                                                  \
                                                                            \
    for( ; ((len) -= 12) >= 0; (dst) += 12, (src) += 12 )                   \
    {                                                                       \
        worktype t0 = __op__((scalar)[0], (src)[0]);                        \
        worktype t1 = __op__((scalar)[1], (src)[1]);                        \
                                                                            \
        (dst)[0] = cast_macro( t0 );                                        \
        (dst)[1] = cast_macro( t1 );                                        \
                                                                            \
        t0 = __op__((scalar)[2], (src)[2]);                                 \
        t1 = __op__((scalar)[3], (src)[3]);                                 \
                                                                            \
        (dst)[2] = cast_macro( t0 );                                        \
        (dst)[3] = cast_macro( t1 );                                        \
                                                                            \
        t0 = __op__((scalar)[4], (src)[4]);                                 \
        t1 = __op__((scalar)[5], (src)[5]);                                 \
                                                                            \
        (dst)[4] = cast_macro( t0 );                                        \
        (dst)[5] = cast_macro( t1 );                                        \
                                                                            \
        t0 = __op__((scalar)[6], (src)[6]);                                 \
        t1 = __op__((scalar)[7], (src)[7]);                                 \
                                                                            \
        (dst)[6] = cast_macro( t0 );                                        \
        (dst)[7] = cast_macro( t1 );                                        \
                                                                            \
        t0 = __op__((scalar)[8], (src)[8]);                                 \
        t1 = __op__((scalar)[9], (src)[9]);                                 \
                                                                            \
        (dst)[8] = cast_macro( t0 );                                        \
        (dst)[9] = cast_macro( t1 );                                        \
                                                                            \
        t0 = __op__((scalar)[10], (src)[10]);                               \
        t1 = __op__((scalar)[11], (src)[11]);                               \
                                                                            \
        (dst)[10] = cast_macro( t0 );                                       \
        (dst)[11] = cast_macro( t1 );                                       \
    }                                                                       \
                                                                            \
    for( (len) += 12, i = 0; i < (len); i++ )                               \
    {                                                                       \
        worktype t0 = __op__((scalar)[i],(src)[i]);                         \
        (dst)[i] = cast_macro( t0 );                                        \
    }                                                                       \
}


#define ICV_DEF_UN_ARI_OP_2D( __op__, name, type, worktype, cast_macro )    \
static CvStatus CV_STDCALL name                                             \
    ( const type* src, int step1, type* dst, int step,                      \
      CvSize size, const worktype* scalar )                                 \
{                                                                           \
    step1 /= sizeof(src[0]); step /= sizeof(dst[0]);                        \
                                                                            \
    if( size.width == 1 )                                                   \
    {                                                                       \
        for( ; size.height--; src += step1, dst += step )                   \
        {                                                                   \
            worktype t0 = __op__(*(scalar),*(src));                         \
            *(dst) = cast_macro( t0 );                                      \
        }                                                                   \
    }                                                                       \
    else                                                                    \
    {                                                                       \
        for( ; size.height--; src += step1, dst += step )                   \
        {                                                                   \
            const type *tsrc = src;                                         \
            type *tdst = dst;                                               \
            int width = size.width;                                         \
                                                                            \
            ICV_DEF_UN_ARI_OP_CASE( __op__, worktype, cast_macro,           \
                                    tsrc, scalar, tdst, width );            \
        }                                                                   \
    }                                                                       \
                                                                            \
    return CV_OK;                                                           \
}


#define ICV_DEF_BIN_ARI_ALL( __op__, name, cast_8u )                                \
ICV_DEF_BIN_ARI_OP_2D_SFS( __op__, icv##name##_8u_C1R, uchar, int, cast_8u )        \
ICV_DEF_BIN_ARI_OP_2D_SFS( __op__, icv##name##_16u_C1R, ushort, int, CV_CAST_16U )  \
ICV_DEF_BIN_ARI_OP_2D_SFS( __op__, icv##name##_16s_C1R, short, int, CV_CAST_16S )   \
ICV_DEF_BIN_ARI_OP_2D( __op__, icv##name##_32s_C1R, int, int, CV_CAST_32S )         \
ICV_DEF_BIN_ARI_OP_2D( __op__, icv##name##_32f_C1R, float, float, CV_CAST_32F )     \
ICV_DEF_BIN_ARI_OP_2D( __op__, icv##name##_64f_C1R, double, double, CV_CAST_64F )

#define ICV_DEF_UN_ARI_ALL( __op__, name )                                          \
ICV_DEF_UN_ARI_OP_2D( __op__, icv##name##_8u_C1R, uchar, int, CV_CAST_8U )          \
ICV_DEF_UN_ARI_OP_2D( __op__, icv##name##_16u_C1R, ushort, int, CV_CAST_16U )       \
ICV_DEF_UN_ARI_OP_2D( __op__, icv##name##_16s_C1R, short, int, CV_CAST_16S )        \
ICV_DEF_UN_ARI_OP_2D( __op__, icv##name##_32s_C1R, int, int, CV_CAST_32S )          \
ICV_DEF_UN_ARI_OP_2D( __op__, icv##name##_32f_C1R, float, float, CV_CAST_32F )      \
ICV_DEF_UN_ARI_OP_2D( __op__, icv##name##_64f_C1R, double, double, CV_CAST_64F )

#undef CV_SUB_R
#define CV_SUB_R(a,b) ((b) - (a))

ICV_DEF_BIN_ARI_ALL( CV_ADD, Add, CV_FAST_CAST_8U )
ICV_DEF_BIN_ARI_ALL( CV_SUB_R, Sub, CV_FAST_CAST_8U )

ICV_DEF_UN_ARI_ALL( CV_ADD, AddC )
ICV_DEF_UN_ARI_ALL( CV_SUB, SubRC )

#define ICV_DEF_INIT_ARITHM_FUNC_TAB( FUNCNAME, FLAG )          \
static  void  icvInit##FUNCNAME##FLAG##Table( CvFuncTable* tab )\
{                                                               \
    tab->fn_2d[CV_8U] = (void*)icv##FUNCNAME##_8u_##FLAG;       \
    tab->fn_2d[CV_8S] = 0;                                      \
    tab->fn_2d[CV_16U] = (void*)icv##FUNCNAME##_16u_##FLAG;     \
    tab->fn_2d[CV_16S] = (void*)icv##FUNCNAME##_16s_##FLAG;     \
    tab->fn_2d[CV_32S] = (void*)icv##FUNCNAME##_32s_##FLAG;     \
    tab->fn_2d[CV_32F] = (void*)icv##FUNCNAME##_32f_##FLAG;     \
    tab->fn_2d[CV_64F] = (void*)icv##FUNCNAME##_64f_##FLAG;     \
}

ICV_DEF_INIT_ARITHM_FUNC_TAB( Sub, C1R )
ICV_DEF_INIT_ARITHM_FUNC_TAB( SubRC, C1R )
ICV_DEF_INIT_ARITHM_FUNC_TAB( Add, C1R )
ICV_DEF_INIT_ARITHM_FUNC_TAB( AddC, C1R )

/****************************************************************************************\
*                       External Functions for Arithmetic Operations                     *
\****************************************************************************************/

/*************************************** S U B ******************************************/

CV_IMPL void
cvSub( const void* srcarr1, const void* srcarr2,
       void* dstarr, const void* maskarr )
{
    static CvFuncTable sub_tab;
    static int inittab = 0;
    int local_alloc = 1;
    uchar* buffer = 0;

    CV_FUNCNAME( "cvSub" );

    __BEGIN__;

    const CvArr* tmp;
    int y, dy, type, depth, cn, cont_flag = 0;
    int src1_step, src2_step, dst_step, tdst_step, mask_step;
    CvMat srcstub1, srcstub2, *src1, *src2;
    CvMat dststub,  *dst = (CvMat*)dstarr;
    CvMat maskstub, *mask = (CvMat*)maskarr;
    CvMat dstbuf, *tdst;
    CvFunc2D_3A func;
    CvFunc2D_3A1I func_sfs;
    CvCopyMaskFunc copym_func;
    CvSize size, tsize;

    CV_SWAP( srcarr1, srcarr2, tmp ); // to comply with IPP
    src1 = (CvMat*)srcarr1;
    src2 = (CvMat*)srcarr2;

    if( !CV_IS_MAT(src1) || !CV_IS_MAT(src2) || !CV_IS_MAT(dst))
    {
        if( CV_IS_MATND(src1) || CV_IS_MATND(src2) || CV_IS_MATND(dst))
        {
            CvArr* arrs[] = { src1, src2, dst };
            CvMatND stubs[3];
            CvNArrayIterator iterator;

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

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

            type = iterator.hdr[0]->type;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产成人久久av盗摄 | 美女国产一区二区| 久久99久久99| 欧洲av一区二区嗯嗯嗯啊| 在线观看免费亚洲| 欧美一区二区在线看| 国产视频一区二区在线| 久久天天做天天爱综合色| av不卡一区二区三区| 一区二区三区在线观看视频| 另类欧美日韩国产在线| 粉嫩绯色av一区二区在线观看| 欧美精品一区男女天堂| 免费成人美女在线观看.| 风间由美一区二区三区在线观看| 在线观看欧美日本| xvideos.蜜桃一区二区| 国产精品久久看| 亚洲午夜一二三区视频| 美女网站色91| 亚洲一区二区在线免费观看视频 | 丁香另类激情小说| 91丨九色丨蝌蚪富婆spa| 日韩三级免费观看| 亚洲精品欧美在线| 99久久亚洲一区二区三区青草| 国产美女精品人人做人人爽| 欧美精品在线观看播放| 国产亚洲一区二区在线观看| 国产精品自拍一区| 日本丶国产丶欧美色综合| 一级中文字幕一区二区| 亚洲乱码国产乱码精品精可以看| 一二三四社区欧美黄| 国产一区二区三区在线看麻豆| 一本高清dvd不卡在线观看| 日韩免费观看高清完整版| 老司机精品视频线观看86| 久久色中文字幕| 免费xxxx性欧美18vr| 日韩色视频在线观看| 日韩精品一卡二卡三卡四卡无卡| 成人不卡免费av| 精品福利一二区| 久久91精品国产91久久小草| 99re这里只有精品首页| 欧洲在线/亚洲| 日韩理论片在线| 日本高清成人免费播放| 精品一区二区综合| 韩国女主播成人在线观看| 欧美亚一区二区| 亚洲精品成a人| 91电影在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 成人avav影音| 亚洲激情自拍视频| 在线观看日韩电影| 亚洲色图欧美偷拍| 欧美午夜精品一区二区三区| 亚洲在线视频免费观看| 不卡视频一二三| 中文字幕第一区第二区| 成人免费不卡视频| 国产亚洲综合色| 成人免费观看视频| 日韩伦理av电影| 欧美二区在线观看| 日韩精品免费视频人成| 日韩视频免费观看高清完整版 | 国产一区二区三区精品视频| 久久久久久久久久久电影| 国产91清纯白嫩初高中在线观看| 日韩一区二区三区视频| 精品制服美女丁香| 26uuu精品一区二区三区四区在线| 精品一区二区三区免费毛片爱| 欧美大片一区二区三区| 久久精品国产一区二区三| 精品福利一二区| 国产毛片一区二区| 国产精品电影院| 在线精品视频免费观看| 精品一区二区三区在线观看国产 | 高清不卡在线观看| 亚洲欧洲成人自拍| 色偷偷88欧美精品久久久| 日韩不卡手机在线v区| 欧美成人激情免费网| 不卡欧美aaaaa| 亚洲v中文字幕| 午夜久久久久久电影| 国产精品久久一卡二卡| 欧美精品一区二区蜜臀亚洲| av亚洲精华国产精华精| 久久精品国产亚洲一区二区三区 | 欧美sm极限捆绑bd| 一本到三区不卡视频| 国产精品一区二区无线| 精品无码三级在线观看视频| 欧美极品aⅴ影院| 欧美日韩精品欧美日韩精品| 国产精品99久久久久久宅男| 亚洲最快最全在线视频| 欧美精品一区二区三区高清aⅴ | 国产成人精品网址| 亚洲成在线观看| 国产精品丝袜黑色高跟| 欧美日韩国产成人在线91| 国产一区日韩二区欧美三区| 亚洲综合色成人| 精品久久久久一区二区国产| 91丨porny丨国产| 国产在线视视频有精品| 亚洲私人黄色宅男| 欧美色精品天天在线观看视频| 国产经典欧美精品| 香蕉久久夜色精品国产使用方法| 欧美国产日韩亚洲一区| 欧美一区二区三区在线观看视频| 高清在线不卡av| 蜜桃久久久久久| 亚洲美女在线国产| 日韩免费观看高清完整版 | 午夜精品福利一区二区三区蜜桃| 久久―日本道色综合久久| 欧美日韩久久一区二区| 成人综合婷婷国产精品久久蜜臀 | 国产日本欧洲亚洲| 欧美精品日韩一区| 成av人片一区二区| 午夜亚洲国产au精品一区二区| 欧美色综合久久| 成人性色生活片| 国内精品伊人久久久久影院对白| 亚洲国产精品久久不卡毛片| 久久嫩草精品久久久久| 91精品国产欧美一区二区成人 | 亚洲精品v日韩精品| 国产视频一区在线播放| 日韩免费看的电影| 欧美日韩视频不卡| 国产成a人无v码亚洲福利| 韩国女主播成人在线观看| 首页国产欧美日韩丝袜| 亚洲国产成人高清精品| 136国产福利精品导航| 国产欧美日韩中文久久| 久久久久国产精品厨房| 日韩三级中文字幕| 精品视频一区二区三区免费| 91理论电影在线观看| 成人国产一区二区三区精品| 成人午夜视频网站| 国产精品91xxx| 国精产品一区一区三区mba桃花| 久久国产精品99久久人人澡| 日韩精品免费视频人成| 日本特黄久久久高潮| 亚洲精品成a人| 一区二区三区丝袜| 中文字幕中文字幕中文字幕亚洲无线| 久久久久久97三级| 国产亚洲精品bt天堂精选| 久久精品视频一区二区三区| 337p日本欧洲亚洲大胆精品| 久久中文字幕电影| 久久久亚洲精华液精华液精华液| 久久一留热品黄| 久久久精品tv| 久久久久久免费| 国产精品美女久久久久久久 | 激情综合五月天| 午夜影院在线观看欧美| 日韩精品免费专区| 日本午夜一本久久久综合| 久久精品国产亚洲aⅴ| 狠狠色丁香九九婷婷综合五月| 久久精品国产精品亚洲综合| 国产一区二区视频在线播放| 国产精品一区二区在线观看不卡| 国产jizzjizz一区二区| 成人精品高清在线| 91在线国产观看| 欧美日韩一区二区不卡| 欧美精品粉嫩高潮一区二区| 欧美一级久久久久久久大片| 欧美精品777| 日韩一区二区三| 久久亚洲捆绑美女| 337p粉嫩大胆噜噜噜噜噜91av| 中国色在线观看另类| 日韩一区在线看| 天堂va蜜桃一区二区三区| 精品一区二区三区在线播放 | 亚洲制服欧美中文字幕中文字幕| 一区二区不卡在线播放 | 中文字幕精品一区二区三区精品| 国产精品久久久久aaaa| 亚洲一二三区在线观看|