Home | History | Annotate | Download | only in src
      1 /*M///////////////////////////////////////////////////////////////////////////////////////
      2 //
      3 //  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
      4 //
      5 //  By downloading, copying, installing or using the software you agree to this license.
      6 //  If you do not agree to this license, do not download, install,
      7 //  copy or use the software.
      8 //
      9 //
     10 //                        Intel License Agreement
     11 //                For Open Source Computer Vision Library
     12 //
     13 // Copyright (C) 2000, Intel Corporation, all rights reserved.
     14 // Third party copyrights are property of their respective owners.
     15 //
     16 // Redistribution and use in source and binary forms, with or without modification,
     17 // are permitted provided that the following conditions are met:
     18 //
     19 //   * Redistribution's of source code must retain the above copyright notice,
     20 //     this list of conditions and the following disclaimer.
     21 //
     22 //   * Redistribution's in binary form must reproduce the above copyright notice,
     23 //     this list of conditions and the following disclaimer in the documentation
     24 //     and/or other materials provided with the distribution.
     25 //
     26 //   * The name of Intel Corporation may not be used to endorse or promote products
     27 //     derived from this software without specific prior written permission.
     28 //
     29 // This software is provided by the copyright holders and contributors "as is" and
     30 // any express or implied warranties, including, but not limited to, the implied
     31 // warranties of merchantability and fitness for a particular purpose are disclaimed.
     32 // In no event shall the Intel Corporation or contributors be liable for any direct,
     33 // indirect, incidental, special, exemplary, or consequential damages
     34 // (including, but not limited to, procurement of substitute goods or services;
     35 // loss of use, data, or profits; or business interruption) however caused
     36 // and on any theory of liability, whether in contract, strict liability,
     37 // or tort (including negligence or otherwise) arising in any way out of
     38 // the use of this software, even if advised of the possibility of such damage.
     39 //
     40 //M*/
     41 
     42 #ifndef _CV_IPP_H_
     43 #define _CV_IPP_H_
     44 
     45 /****************************************************************************************\
     46 *                                  Creating Borders                                      *
     47 \****************************************************************************************/
     48 
     49 #define IPCV_COPY_BORDER( bordertype, flavor )                                      \
     50 IPCVAPI_EX( CvStatus, icvCopy##bordertype##Border_##flavor##R,                      \
     51     "ippiCopy" #bordertype "Border_" #flavor "R", CV_PLUGINS1(CV_PLUGIN_IPPI),      \
     52     ( const void* pSrc,  int srcStep, CvSize srcRoiSize, void* pDst,  int dstStep,  \
     53       CvSize dstRoiSize, int topBorderHeight, int leftBorderWidth ))                \
     54                                                                                     \
     55 IPCVAPI_EX( CvStatus, icvCopy##bordertype##Border_##flavor##IR,                     \
     56     "ippiCopy" #bordertype "Border_" #flavor "IR", CV_PLUGINS1(CV_PLUGIN_IPPI),     \
     57     ( const void* pSrc,  int srcDstStep, CvSize srcRoiSize,                         \
     58       CvSize dstRoiSize, int topBorderHeight, int leftBorderWidth ))
     59 
     60 IPCV_COPY_BORDER( Replicate, 8u_C1 )
     61 IPCV_COPY_BORDER( Replicate, 16s_C1 )
     62 IPCV_COPY_BORDER( Replicate, 8u_C3 )
     63 IPCV_COPY_BORDER( Replicate, 32s_C1 )
     64 IPCV_COPY_BORDER( Replicate, 16s_C3 )
     65 IPCV_COPY_BORDER( Replicate, 16s_C4 )
     66 IPCV_COPY_BORDER( Replicate, 32s_C3 )
     67 IPCV_COPY_BORDER( Replicate, 32s_C4 )
     68 
     69 /****************************************************************************************\
     70 *                                        Moments                                         *
     71 \****************************************************************************************/
     72 
     73 #define IPCV_MOMENTS( suffix, ipp_suffix, cn )                      \
     74 IPCVAPI_EX( CvStatus, icvMoments##suffix##_C##cn##R,                \
     75 "ippiMoments" #ipp_suffix "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),\
     76 ( const void* img, int step, CvSize size, void* momentstate ))
     77 
     78 IPCV_MOMENTS( _8u, 64f_8u, 1 )
     79 IPCV_MOMENTS( _32f, 64f_32f, 1 )
     80 
     81 #undef IPCV_MOMENTS
     82 
     83 IPCVAPI_EX( CvStatus, icvMomentInitAlloc_64f,
     84             "ippiMomentInitAlloc_64f", CV_PLUGINS1(CV_PLUGIN_IPPI),
     85             (void** momentstate, CvHintAlgorithm hint ))
     86 
     87 IPCVAPI_EX( CvStatus, icvMomentFree_64f,
     88             "ippiMomentFree_64f", CV_PLUGINS1(CV_PLUGIN_IPPI),
     89             (void* momentstate ))
     90 
     91 IPCVAPI_EX( CvStatus, icvGetSpatialMoment_64f,
     92             "ippiGetSpatialMoment_64f", CV_PLUGINS1(CV_PLUGIN_IPPI),
     93             (const void* momentstate, int mOrd, int nOrd,
     94              int nChannel, CvPoint roiOffset, double* value ))
     95 
     96 /****************************************************************************************\
     97 *                                  Background differencing                               *
     98 \****************************************************************************************/
     99 
    100 /////////////////////////////////// Accumulation /////////////////////////////////////////
    101 
    102 #define IPCV_ACCUM( flavor, arrtype, acctype )                                      \
    103 IPCVAPI_EX( CvStatus, icvAdd_##flavor##_C1IR,                                       \
    104     "ippiAdd_" #flavor "_C1IR", CV_PLUGINS1(CV_PLUGIN_IPPCV),                       \
    105     ( const arrtype* src, int srcstep, acctype* dst, int dststep, CvSize size ))    \
    106 IPCVAPI_EX( CvStatus, icvAddSquare_##flavor##_C1IR,                                 \
    107     "ippiAddSquare_" #flavor "_C1IR", CV_PLUGINS1(CV_PLUGIN_IPPCV),                 \
    108     ( const arrtype* src, int srcstep, acctype* dst, int dststep, CvSize size ))    \
    109 IPCVAPI_EX( CvStatus, icvAddProduct_##flavor##_C1IR,                                \
    110     "ippiAddProduct_" #flavor "_C1IR", CV_PLUGINS1(CV_PLUGIN_IPPCV),                \
    111     ( const arrtype* src1, int srcstep1, const arrtype* src2, int srcstep2,         \
    112       acctype* dst, int dststep, CvSize size ))                                     \
    113 IPCVAPI_EX( CvStatus, icvAddWeighted_##flavor##_C1IR,                               \
    114     "ippiAddWeighted_" #flavor "_C1IR", CV_PLUGINS1(CV_PLUGIN_IPPCV),               \
    115     ( const arrtype* src, int srcstep, acctype* dst, int dststep,                   \
    116       CvSize size, acctype alpha ))                                                 \
    117                                                                                     \
    118 IPCVAPI_EX( CvStatus, icvAdd_##flavor##_C1IMR,                                      \
    119     "ippiAdd_" #flavor "_C1IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),                      \
    120     ( const arrtype* src, int srcstep, const uchar* mask, int maskstep,             \
    121       acctype* dst, int dststep, CvSize size ))                                     \
    122 IPCVAPI_EX( CvStatus, icvAddSquare_##flavor##_C1IMR,                                \
    123     "ippiAddSquare_" #flavor "_C1IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),                \
    124     ( const arrtype* src, int srcstep, const uchar* mask, int maskstep,             \
    125       acctype* dst, int dststep, CvSize size ))                                     \
    126 IPCVAPI_EX( CvStatus, icvAddProduct_##flavor##_C1IMR,                               \
    127     "ippiAddProduct_" #flavor "_C1IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),               \
    128     ( const arrtype* src1, int srcstep1, const arrtype* src2, int srcstep2,         \
    129       const uchar* mask, int maskstep, acctype* dst, int dststep, CvSize size ))    \
    130 IPCVAPI_EX( CvStatus, icvAddWeighted_##flavor##_C1IMR,                              \
    131     "ippiAddWeighted_" #flavor "_C1IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),              \
    132     ( const arrtype* src, int srcstep, const uchar* mask, int maskstep,             \
    133       acctype* dst, int dststep, CvSize size, acctype alpha ))                      \
    134                                                                                     \
    135 IPCVAPI_EX( CvStatus, icvAdd_##flavor##_C3IMR,                                      \
    136     "ippiAdd_" #flavor "_C3IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),                      \
    137     ( const arrtype* src, int srcstep, const uchar* mask, int maskstep,             \
    138       acctype* dst, int dststep, CvSize size ))                                     \
    139 IPCVAPI_EX( CvStatus, icvAddSquare_##flavor##_C3IMR,                                \
    140     "ippiAddSquare_" #flavor "_C3IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),                \
    141     ( const arrtype* src, int srcstep, const uchar* mask, int maskstep,             \
    142       acctype* dst, int dststep, CvSize size ))                                     \
    143 IPCVAPI_EX( CvStatus, icvAddProduct_##flavor##_C3IMR,                               \
    144     "ippiAddProduct_" #flavor "_C3IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),               \
    145     ( const arrtype* src1, int srcstep1, const arrtype* src2, int srcstep2,         \
    146       const uchar* mask, int maskstep, acctype* dst, int dststep, CvSize size ))    \
    147 IPCVAPI_EX( CvStatus, icvAddWeighted_##flavor##_C3IMR,                              \
    148     "ippiAddWeighted_" #flavor "_C3IMR", CV_PLUGINS1(CV_PLUGIN_IPPCV),              \
    149     ( const arrtype* src, int srcstep, const uchar* mask, int maskstep,             \
    150       acctype* dst, int dststep, CvSize size, acctype alpha ))
    151 
    152 IPCV_ACCUM( 8u32f, uchar, float )
    153 IPCV_ACCUM( 32f, float, float )
    154 
    155 #undef IPCV_ACCUM
    156 
    157 /****************************************************************************************\
    158 *                                       Pyramids                                         *
    159 \****************************************************************************************/
    160 
    161 IPCVAPI_EX( CvStatus, icvPyrDownGetBufSize_Gauss5x5,
    162            "ippiPyrDownGetBufSize_Gauss5x5", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    163             ( int roiWidth, CvDataType dataType, int channels, int* bufSize ))
    164 
    165 IPCVAPI_EX( CvStatus, icvPyrUpGetBufSize_Gauss5x5,
    166            "ippiPyrUpGetBufSize_Gauss5x5", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    167             ( int roiWidth, CvDataType dataType, int channels, int* bufSize ))
    168 
    169 #define ICV_PYRDOWN( flavor, cn )                                           \
    170 IPCVAPI_EX( CvStatus, icvPyrDown_Gauss5x5_##flavor##_C##cn##R,              \
    171 "ippiPyrDown_Gauss5x5_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPCV), \
    172 ( const void* pSrc, int srcStep, void* pDst, int dstStep,                   \
    173   CvSize roiSize, void* pBuffer ))
    174 
    175 #define ICV_PYRUP( flavor, cn )                                             \
    176 IPCVAPI_EX( CvStatus, icvPyrUp_Gauss5x5_##flavor##_C##cn##R,                \
    177 "ippiPyrUp_Gauss5x5_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPCV),   \
    178 ( const void* pSrc, int srcStep, void* pDst, int dstStep,                   \
    179   CvSize roiSize, void* pBuffer ))
    180 
    181 ICV_PYRDOWN( 8u, 1 )
    182 ICV_PYRDOWN( 8u, 3 )
    183 ICV_PYRDOWN( 32f, 1 )
    184 ICV_PYRDOWN( 32f, 3 )
    185 
    186 ICV_PYRUP( 8u, 1 )
    187 ICV_PYRUP( 8u, 3 )
    188 ICV_PYRUP( 32f, 1 )
    189 ICV_PYRUP( 32f, 3 )
    190 
    191 #undef ICV_PYRDOWN
    192 #undef ICV_PYRUP
    193 
    194 /****************************************************************************************\
    195 *                                Geometric Transformations                               *
    196 \****************************************************************************************/
    197 
    198 #define IPCV_RESIZE( flavor, cn )                                           \
    199 IPCVAPI_EX( CvStatus, icvResize_##flavor##_C##cn##R,                        \
    200             "ippiResize_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),\
    201            (const void* src, CvSize srcsize, int srcstep, CvRect srcroi,    \
    202             void* dst, int dststep, CvSize dstroi,                          \
    203             double xfactor, double yfactor, int interpolation ))
    204 
    205 IPCV_RESIZE( 8u, 1 )
    206 IPCV_RESIZE( 8u, 3 )
    207 IPCV_RESIZE( 8u, 4 )
    208 
    209 IPCV_RESIZE( 16u, 1 )
    210 IPCV_RESIZE( 16u, 3 )
    211 IPCV_RESIZE( 16u, 4 )
    212 
    213 IPCV_RESIZE( 32f, 1 )
    214 IPCV_RESIZE( 32f, 3 )
    215 IPCV_RESIZE( 32f, 4 )
    216 
    217 #undef IPCV_RESIZE
    218 
    219 #define IPCV_WARPAFFINE_BACK( flavor, cn )                                  \
    220 IPCVAPI_EX( CvStatus, icvWarpAffineBack_##flavor##_C##cn##R,                \
    221     "ippiWarpAffineBack_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),\
    222     (const void* src, CvSize srcsize, int srcstep, CvRect srcroi,           \
    223     void* dst, int dststep, CvRect dstroi,                                  \
    224     const double* coeffs, int interpolate ))
    225 
    226 IPCV_WARPAFFINE_BACK( 8u, 1 )
    227 IPCV_WARPAFFINE_BACK( 8u, 3 )
    228 IPCV_WARPAFFINE_BACK( 8u, 4 )
    229 
    230 IPCV_WARPAFFINE_BACK( 32f, 1 )
    231 IPCV_WARPAFFINE_BACK( 32f, 3 )
    232 IPCV_WARPAFFINE_BACK( 32f, 4 )
    233 
    234 #undef IPCV_WARPAFFINE_BACK
    235 
    236 #define IPCV_WARPPERSPECTIVE_BACK( flavor, cn )                             \
    237 IPCVAPI_EX( CvStatus, icvWarpPerspectiveBack_##flavor##_C##cn##R,           \
    238     "ippiWarpPerspectiveBack_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),\
    239     (const void* src, CvSize srcsize, int srcstep, CvRect srcroi,           \
    240     void* dst, int dststep, CvRect dstroi,                                  \
    241     const double* coeffs, int interpolate ))
    242 
    243 IPCV_WARPPERSPECTIVE_BACK( 8u, 1 )
    244 IPCV_WARPPERSPECTIVE_BACK( 8u, 3 )
    245 IPCV_WARPPERSPECTIVE_BACK( 8u, 4 )
    246 
    247 IPCV_WARPPERSPECTIVE_BACK( 32f, 1 )
    248 IPCV_WARPPERSPECTIVE_BACK( 32f, 3 )
    249 IPCV_WARPPERSPECTIVE_BACK( 32f, 4 )
    250 
    251 #undef IPCV_WARPPERSPECTIVE_BACK
    252 
    253 
    254 #define IPCV_WARPPERSPECTIVE( flavor, cn )                                  \
    255 IPCVAPI_EX( CvStatus, icvWarpPerspective_##flavor##_C##cn##R,               \
    256     "ippiWarpPerspective_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),\
    257     (const void* src, CvSize srcsize, int srcstep, CvRect srcroi,           \
    258     void* dst, int dststep, CvRect dstroi,                                  \
    259     const double* coeffs, int interpolate ))
    260 
    261 IPCV_WARPPERSPECTIVE( 8u, 1 )
    262 IPCV_WARPPERSPECTIVE( 8u, 3 )
    263 IPCV_WARPPERSPECTIVE( 8u, 4 )
    264 
    265 IPCV_WARPPERSPECTIVE( 32f, 1 )
    266 IPCV_WARPPERSPECTIVE( 32f, 3 )
    267 IPCV_WARPPERSPECTIVE( 32f, 4 )
    268 
    269 #undef IPCV_WARPPERSPECTIVE
    270 
    271 #define IPCV_REMAP( flavor, cn )                                        \
    272 IPCVAPI_EX( CvStatus, icvRemap_##flavor##_C##cn##R,                     \
    273     "ippiRemap_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),     \
    274     ( const void* src, CvSize srcsize, int srcstep, CvRect srcroi,      \
    275       const float* xmap, int xmapstep, const float* ymap, int ymapstep, \
    276       void* dst, int dststep, CvSize dstsize, int interpolation ))
    277 
    278 IPCV_REMAP( 8u, 1 )
    279 IPCV_REMAP( 8u, 3 )
    280 IPCV_REMAP( 8u, 4 )
    281 
    282 IPCV_REMAP( 32f, 1 )
    283 IPCV_REMAP( 32f, 3 )
    284 IPCV_REMAP( 32f, 4 )
    285 
    286 #undef IPCV_REMAP
    287 
    288 /****************************************************************************************\
    289 *                                      Morphology                                        *
    290 \****************************************************************************************/
    291 
    292 #define IPCV_MORPHOLOGY( minmaxtype, morphtype, flavor, cn )                    \
    293 IPCVAPI_EX( CvStatus, icv##morphtype##Rect_##flavor##_C##cn##R,                 \
    294     "ippiFilter" #minmaxtype "BorderReplicate_" #flavor "_C" #cn "R",           \
    295     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( const void* src, int srcstep, void* dst,    \
    296     int dststep, CvSize roi, CvSize esize, CvPoint anchor, void* buffer ))      \
    297 IPCVAPI_EX( CvStatus, icv##morphtype##Rect_GetBufSize_##flavor##_C##cn##R,      \
    298     "ippiFilter" #minmaxtype "GetBufferSize_" #flavor "_C" #cn "R",             \
    299     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( int width, CvSize esize, int* bufsize ))    \
    300                                                                                 \
    301 IPCVAPI_EX( CvStatus, icv##morphtype##_##flavor##_C##cn##R,                     \
    302     "ippi" #morphtype "BorderReplicate_" #flavor "_C" #cn "R",                  \
    303     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( const void* src, int srcstep,               \
    304     void* dst, int dststep, CvSize roi, int bordertype, void* morphstate ))
    305 
    306 IPCV_MORPHOLOGY( Min, Erode, 8u, 1 )
    307 IPCV_MORPHOLOGY( Min, Erode, 8u, 3 )
    308 IPCV_MORPHOLOGY( Min, Erode, 8u, 4 )
    309 IPCV_MORPHOLOGY( Min, Erode, 16u, 1 )
    310 IPCV_MORPHOLOGY( Min, Erode, 16u, 3 )
    311 IPCV_MORPHOLOGY( Min, Erode, 16u, 4 )
    312 IPCV_MORPHOLOGY( Min, Erode, 32f, 1 )
    313 IPCV_MORPHOLOGY( Min, Erode, 32f, 3 )
    314 IPCV_MORPHOLOGY( Min, Erode, 32f, 4 )
    315 IPCV_MORPHOLOGY( Max, Dilate, 8u, 1 )
    316 IPCV_MORPHOLOGY( Max, Dilate, 8u, 3 )
    317 IPCV_MORPHOLOGY( Max, Dilate, 8u, 4 )
    318 IPCV_MORPHOLOGY( Max, Dilate, 16u, 1 )
    319 IPCV_MORPHOLOGY( Max, Dilate, 16u, 3 )
    320 IPCV_MORPHOLOGY( Max, Dilate, 16u, 4 )
    321 IPCV_MORPHOLOGY( Max, Dilate, 32f, 1 )
    322 IPCV_MORPHOLOGY( Max, Dilate, 32f, 3 )
    323 IPCV_MORPHOLOGY( Max, Dilate, 32f, 4 )
    324 
    325 #undef IPCV_MORPHOLOGY
    326 
    327 #define IPCV_MORPHOLOGY_INIT_ALLOC( flavor, cn )                            \
    328 IPCVAPI_EX( CvStatus, icvMorphInitAlloc_##flavor##_C##cn##R,                \
    329     "ippiMorphologyInitAlloc_" #flavor "_C" #cn "R",                        \
    330     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( int width, const uchar* element,        \
    331     CvSize esize, CvPoint anchor, void** morphstate ))
    332 
    333 IPCV_MORPHOLOGY_INIT_ALLOC( 8u, 1 )
    334 IPCV_MORPHOLOGY_INIT_ALLOC( 8u, 3 )
    335 IPCV_MORPHOLOGY_INIT_ALLOC( 8u, 4 )
    336 IPCV_MORPHOLOGY_INIT_ALLOC( 16u, 1 )
    337 IPCV_MORPHOLOGY_INIT_ALLOC( 16u, 3 )
    338 IPCV_MORPHOLOGY_INIT_ALLOC( 16u, 4 )
    339 IPCV_MORPHOLOGY_INIT_ALLOC( 32f, 1 )
    340 IPCV_MORPHOLOGY_INIT_ALLOC( 32f, 3 )
    341 IPCV_MORPHOLOGY_INIT_ALLOC( 32f, 4 )
    342 
    343 #undef IPCV_MORPHOLOGY_INIT_ALLOC
    344 
    345 IPCVAPI_EX( CvStatus, icvMorphFree, "ippiMorphologyFree",
    346     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( void* morphstate ))
    347 
    348 
    349 /****************************************************************************************\
    350 *                                 Smoothing Filters                                      *
    351 \****************************************************************************************/
    352 
    353 #define IPCV_FILTER_MEDIAN( flavor, cn )                                            \
    354 IPCVAPI_EX( CvStatus, icvFilterMedian_##flavor##_C##cn##R,                          \
    355             "ippiFilterMedian_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),  \
    356             ( const void* src, int srcstep, void* dst, int dststep,                 \
    357               CvSize roi, CvSize ksize, CvPoint anchor ))
    358 
    359 IPCV_FILTER_MEDIAN( 8u, 1 )
    360 IPCV_FILTER_MEDIAN( 8u, 3 )
    361 IPCV_FILTER_MEDIAN( 8u, 4 )
    362 
    363 #define IPCV_FILTER_BOX( flavor, cn )                                               \
    364 IPCVAPI_EX( CvStatus, icvFilterBox_##flavor##_C##cn##R,                             \
    365             "ippiFilterBox_" #flavor "_C" #cn "R", 0/*CV_PLUGINS1(CV_PLUGIN_IPPI)*/,\
    366             ( const void* src, int srcstep, void* dst, int dststep,                 \
    367               CvSize roi, CvSize ksize, CvPoint anchor ))
    368 
    369 IPCV_FILTER_BOX( 8u, 1 )
    370 IPCV_FILTER_BOX( 8u, 3 )
    371 IPCV_FILTER_BOX( 8u, 4 )
    372 IPCV_FILTER_BOX( 32f, 1 )
    373 IPCV_FILTER_BOX( 32f, 3 )
    374 IPCV_FILTER_BOX( 32f, 4 )
    375 
    376 #undef IPCV_FILTER_BOX
    377 
    378 /****************************************************************************************\
    379 *                                 Derivative Filters                                     *
    380 \****************************************************************************************/
    381 
    382 #define IPCV_FILTER_SOBEL_BORDER( suffix, flavor, srctype )                             \
    383 IPCVAPI_EX( CvStatus, icvFilterSobel##suffix##GetBufSize_##flavor##_C1R,                \
    384     "ippiFilterSobel" #suffix "GetBufferSize_" #flavor "_C1R",                          \
    385     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( CvSize roi, int masksize, int* buffersize ))        \
    386 IPCVAPI_EX( CvStatus, icvFilterSobel##suffix##Border_##flavor##_C1R,                    \
    387     "ippiFilterSobel" #suffix "Border_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),   \
    388     ( const void* src, int srcstep, void* dst, int dststep, CvSize roi, int masksize,   \
    389       int bordertype, srctype bordervalue, void* buffer ))
    390 
    391 IPCV_FILTER_SOBEL_BORDER( NegVert, 8u16s, uchar )
    392 IPCV_FILTER_SOBEL_BORDER( Horiz, 8u16s, uchar )
    393 IPCV_FILTER_SOBEL_BORDER( VertSecond, 8u16s, uchar )
    394 IPCV_FILTER_SOBEL_BORDER( HorizSecond, 8u16s, uchar )
    395 IPCV_FILTER_SOBEL_BORDER( Cross, 8u16s, uchar )
    396 
    397 IPCV_FILTER_SOBEL_BORDER( NegVert, 32f, float )
    398 IPCV_FILTER_SOBEL_BORDER( Horiz, 32f, float )
    399 IPCV_FILTER_SOBEL_BORDER( VertSecond, 32f, float )
    400 IPCV_FILTER_SOBEL_BORDER( HorizSecond, 32f, float )
    401 IPCV_FILTER_SOBEL_BORDER( Cross, 32f, float )
    402 
    403 #undef IPCV_FILTER_SOBEL_BORDER
    404 
    405 #define IPCV_FILTER_SCHARR_BORDER( suffix, flavor, srctype )                            \
    406 IPCVAPI_EX( CvStatus, icvFilterScharr##suffix##GetBufSize_##flavor##_C1R,               \
    407     "ippiFilterScharr" #suffix "GetBufferSize_" #flavor "_C1R",                         \
    408     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( CvSize roi, int* buffersize ))                      \
    409 IPCVAPI_EX( CvStatus, icvFilterScharr##suffix##Border_##flavor##_C1R,                   \
    410     "ippiFilterScharr" #suffix "Border_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),  \
    411     ( const void* src, int srcstep, void* dst, int dststep, CvSize roi,                 \
    412       int bordertype, srctype bordervalue, void* buffer ))
    413 
    414 IPCV_FILTER_SCHARR_BORDER( Vert, 8u16s, uchar )
    415 IPCV_FILTER_SCHARR_BORDER( Horiz, 8u16s, uchar )
    416 
    417 IPCV_FILTER_SCHARR_BORDER( Vert, 32f, float )
    418 IPCV_FILTER_SCHARR_BORDER( Horiz, 32f, float )
    419 
    420 #undef IPCV_FILTER_SCHARR_BORDER
    421 
    422 
    423 #define IPCV_FILTER_LAPLACIAN_BORDER( flavor, srctype )                                 \
    424 IPCVAPI_EX( CvStatus, icvFilterLaplacianGetBufSize_##flavor##_C1R,                      \
    425     "ippiFilterLaplacianGetBufferSize_" #flavor "_C1R",                                 \
    426     CV_PLUGINS1(CV_PLUGIN_IPPCV), ( CvSize roi, int masksize, int* buffersize ))        \
    427 IPCVAPI_EX( CvStatus, icvFilterLaplacianBorder_##flavor##_C1R,                          \
    428     "ippiFilterLaplacianBorder_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),          \
    429     ( const void* src, int srcstep, void* dst, int dststep, CvSize roi, int masksize,   \
    430       int bordertype, srctype bordervalue, void* buffer ))
    431 
    432 IPCV_FILTER_LAPLACIAN_BORDER( 8u16s, uchar )
    433 IPCV_FILTER_LAPLACIAN_BORDER( 32f, float )
    434 
    435 #undef IPCV_FILTER_LAPLACIAN_BORDER
    436 
    437 
    438 /////////////////////////////////////////////////////////////////////////////////////////
    439 
    440 #define IPCV_FILTER_SOBEL( suffix, ipp_suffix, flavor )                             \
    441 IPCVAPI_EX( CvStatus, icvFilterSobel##suffix##_##flavor##_C1R,                      \
    442     "ippiFilterSobel" #ipp_suffix "_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI),  \
    443     ( const void* src, int srcstep, void* dst, int dststep, CvSize roi, int aperture ))
    444 
    445 IPCV_FILTER_SOBEL( Vert, Vert, 8u16s )
    446 IPCV_FILTER_SOBEL( Horiz, Horiz, 8u16s )
    447 IPCV_FILTER_SOBEL( VertSecond, VertSecond, 8u16s )
    448 IPCV_FILTER_SOBEL( HorizSecond, HorizSecond, 8u16s )
    449 IPCV_FILTER_SOBEL( Cross, Cross, 8u16s )
    450 
    451 IPCV_FILTER_SOBEL( Vert, VertMask, 32f )
    452 IPCV_FILTER_SOBEL( Horiz, HorizMask, 32f )
    453 IPCV_FILTER_SOBEL( VertSecond, VertSecond, 32f )
    454 IPCV_FILTER_SOBEL( HorizSecond, HorizSecond, 32f )
    455 IPCV_FILTER_SOBEL( Cross, Cross, 32f )
    456 
    457 #undef IPCV_FILTER_SOBEL
    458 
    459 #define IPCV_FILTER_SCHARR( suffix, ipp_suffix, flavor )                            \
    460 IPCVAPI_EX( CvStatus, icvFilterScharr##suffix##_##flavor##_C1R,                     \
    461     "ippiFilterScharr" #ipp_suffix "_" #flavor "_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI), \
    462     ( const void* src, int srcstep, void* dst, int dststep, CvSize roi ))
    463 
    464 IPCV_FILTER_SCHARR( Vert, Vert, 8u16s )
    465 IPCV_FILTER_SCHARR( Horiz, Horiz, 8u16s )
    466 IPCV_FILTER_SCHARR( Vert, Vert, 32f )
    467 IPCV_FILTER_SCHARR( Horiz, Horiz, 32f )
    468 
    469 #undef IPCV_FILTER_SCHARR
    470 
    471 /****************************************************************************************\
    472 *                                   Generic Filters                                      *
    473 \****************************************************************************************/
    474 
    475 #define IPCV_FILTER( suffix, ipp_suffix, cn, ksizetype, anchortype )                    \
    476 IPCVAPI_EX( CvStatus, icvFilter##suffix##_C##cn##R,                                     \
    477             "ippiFilter" #ipp_suffix "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPI),         \
    478             ( const void* src, int srcstep, void* dst, int dststep, CvSize size,        \
    479               const float* kernel, ksizetype ksize, anchortype anchor ))
    480 
    481 IPCV_FILTER( _8u, 32f_8u, 1, CvSize, CvPoint )
    482 IPCV_FILTER( _8u, 32f_8u, 3, CvSize, CvPoint )
    483 IPCV_FILTER( _8u, 32f_8u, 4, CvSize, CvPoint )
    484 
    485 IPCV_FILTER( _16s, 32f_16s, 1, CvSize, CvPoint )
    486 IPCV_FILTER( _16s, 32f_16s, 3, CvSize, CvPoint )
    487 IPCV_FILTER( _16s, 32f_16s, 4, CvSize, CvPoint )
    488 
    489 IPCV_FILTER( _32f, _32f, 1, CvSize, CvPoint )
    490 IPCV_FILTER( _32f, _32f, 3, CvSize, CvPoint )
    491 IPCV_FILTER( _32f, _32f, 4, CvSize, CvPoint )
    492 
    493 IPCV_FILTER( Column_8u, Column32f_8u, 1, int, int )
    494 IPCV_FILTER( Column_8u, Column32f_8u, 3, int, int )
    495 IPCV_FILTER( Column_8u, Column32f_8u, 4, int, int )
    496 
    497 IPCV_FILTER( Column_16s, Column32f_16s, 1, int, int )
    498 IPCV_FILTER( Column_16s, Column32f_16s, 3, int, int )
    499 IPCV_FILTER( Column_16s, Column32f_16s, 4, int, int )
    500 
    501 IPCV_FILTER( Column_32f, Column_32f, 1, int, int )
    502 IPCV_FILTER( Column_32f, Column_32f, 3, int, int )
    503 IPCV_FILTER( Column_32f, Column_32f, 4, int, int )
    504 
    505 IPCV_FILTER( Row_8u, Row32f_8u, 1, int, int )
    506 IPCV_FILTER( Row_8u, Row32f_8u, 3, int, int )
    507 IPCV_FILTER( Row_8u, Row32f_8u, 4, int, int )
    508 
    509 IPCV_FILTER( Row_16s, Row32f_16s, 1, int, int )
    510 IPCV_FILTER( Row_16s, Row32f_16s, 3, int, int )
    511 IPCV_FILTER( Row_16s, Row32f_16s, 4, int, int )
    512 
    513 IPCV_FILTER( Row_32f, Row_32f, 1, int, int )
    514 IPCV_FILTER( Row_32f, Row_32f, 3, int, int )
    515 IPCV_FILTER( Row_32f, Row_32f, 4, int, int )
    516 
    517 #undef IPCV_FILTER
    518 
    519 
    520 /****************************************************************************************\
    521 *                                  Color Transformations                                 *
    522 \****************************************************************************************/
    523 
    524 #define IPCV_COLOR( funcname, ipp_funcname, flavor )                            \
    525 IPCVAPI_EX( CvStatus, icv##funcname##_##flavor##_C3R,                           \
    526         "ippi" #ipp_funcname "_" #flavor "_C3R,"                                \
    527         "ippi" #ipp_funcname "_" #flavor "_C3R",                                \
    528         CV_PLUGINS2(CV_PLUGIN_IPPI,CV_PLUGIN_IPPCC),                            \
    529         ( const void* src, int srcstep, void* dst, int dststep, CvSize size ))
    530 
    531 IPCV_COLOR( RGB2XYZ, RGBToXYZ, 8u )
    532 IPCV_COLOR( RGB2XYZ, RGBToXYZ, 16u )
    533 IPCV_COLOR( RGB2XYZ, RGBToXYZ, 32f )
    534 IPCV_COLOR( XYZ2RGB, XYZToRGB, 8u )
    535 IPCV_COLOR( XYZ2RGB, XYZToRGB, 16u )
    536 IPCV_COLOR( XYZ2RGB, XYZToRGB, 32f )
    537 
    538 IPCV_COLOR( RGB2HSV, RGBToHSV, 8u )
    539 IPCV_COLOR( HSV2RGB, HSVToRGB, 8u )
    540 
    541 IPCV_COLOR( RGB2HLS, RGBToHLS, 8u )
    542 IPCV_COLOR( RGB2HLS, RGBToHLS, 32f )
    543 IPCV_COLOR( HLS2RGB, HLSToRGB, 8u )
    544 IPCV_COLOR( HLS2RGB, HLSToRGB, 32f )
    545 
    546 IPCV_COLOR( BGR2Lab, BGRToLab, 8u )
    547 IPCV_COLOR( Lab2BGR, LabToBGR, 8u )
    548 
    549 IPCV_COLOR( RGB2Luv, RGBToLUV, 8u )
    550 /*IPCV_COLOR( RGB2Luv, RGBToLUV, 32f )*/
    551 IPCV_COLOR( Luv2RGB, LUVToRGB, 8u )
    552 /*IPCV_COLOR( Luv2RGB, LUVToRGB, 32f )*/
    553 
    554 /****************************************************************************************\
    555 *                                  Motion Templates                                      *
    556 \****************************************************************************************/
    557 
    558 IPCVAPI_EX( CvStatus, icvUpdateMotionHistory_8u32f_C1IR,
    559     "ippiUpdateMotionHistory_8u32f_C1IR", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    560     ( const uchar* silIm, int silStep, float* mhiIm, int mhiStep,
    561       CvSize size,float  timestamp, float  mhi_duration ))
    562 
    563 /****************************************************************************************\
    564 *                                 Template Matching                                      *
    565 \****************************************************************************************/
    566 
    567 #define ICV_MATCHTEMPLATE( flavor, arrtype )                        \
    568 IPCVAPI_EX( CvStatus, icvCrossCorrValid_Norm_##flavor##_C1R,        \
    569         "ippiCrossCorrValid_Norm_" #flavor "_C1R",                  \
    570         CV_PLUGINS1(CV_PLUGIN_IPPI),                                \
    571         ( const arrtype* pSrc, int srcStep, CvSize srcRoiSize,      \
    572         const arrtype* pTpl, int tplStep, CvSize tplRoiSize,        \
    573         float* pDst, int dstStep ))                                 \
    574 IPCVAPI_EX( CvStatus, icvCrossCorrValid_NormLevel_##flavor##_C1R,   \
    575         "ippiCrossCorrValid_NormLevel_" #flavor "_C1R",             \
    576         CV_PLUGINS1(CV_PLUGIN_IPPI),                                \
    577         ( const arrtype* pSrc, int srcStep, CvSize srcRoiSize,      \
    578         const arrtype* pTpl, int tplStep, CvSize tplRoiSize,        \
    579         float* pDst, int dstStep ))                                 \
    580 IPCVAPI_EX( CvStatus, icvSqrDistanceValid_Norm_##flavor##_C1R,      \
    581         "ippiSqrDistanceValid_Norm_" #flavor "_C1R",                \
    582         CV_PLUGINS1(CV_PLUGIN_IPPI),                                \
    583         ( const arrtype* pSrc, int srcStep, CvSize srcRoiSize,      \
    584         const arrtype* pTpl, int tplStep, CvSize tplRoiSize,        \
    585         float* pDst, int dstStep ))
    586 
    587 ICV_MATCHTEMPLATE( 8u32f, uchar )
    588 ICV_MATCHTEMPLATE( 32f, float )
    589 
    590 /****************************************************************************************/
    591 /*                                Distance Transform                                    */
    592 /****************************************************************************************/
    593 
    594 IPCVAPI_EX(CvStatus, icvDistanceTransform_3x3_8u32f_C1R,
    595     "ippiDistanceTransform_3x3_8u32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    596     ( const uchar* pSrc, int srcStep, float* pDst,
    597       int dstStep, CvSize roiSize, const float* pMetrics ))
    598 
    599 IPCVAPI_EX(CvStatus, icvDistanceTransform_5x5_8u32f_C1R,
    600     "ippiDistanceTransform_5x5_8u32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    601     ( const uchar* pSrc, int srcStep, float* pDst,
    602       int dstStep, CvSize roiSize, const float* pMetrics ))
    603 
    604 IPCVAPI_EX(CvStatus, icvDistanceTransform_3x3_8u_C1IR,
    605     "ippiDistanceTransform_3x3_8u_C1IR", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    606     ( uchar* pSrc, int srcStep, CvSize roiSize, const int* pMetrics ))
    607 
    608 IPCVAPI_EX(CvStatus, icvDistanceTransform_3x3_8u_C1R,
    609     "ippiDistanceTransform_3x3_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    610     ( const uchar* pSrc, int srcStep, uchar* pDst,
    611       int dstStep, CvSize roiSize, const int* pMetrics ))
    612 
    613 /****************************************************************************************\
    614 *                               Thresholding functions                                   *
    615 \****************************************************************************************/
    616 
    617 IPCVAPI_EX( CvStatus, icvCompareC_8u_C1R_cv,
    618             "ippiCompareC_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI),
    619             ( const uchar* src1, int srcstep1, uchar scalar,
    620               uchar* dst, int dststep, CvSize size, int cmp_op ))
    621 IPCVAPI_EX( CvStatus, icvAndC_8u_C1R,
    622             "ippiAndC_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI),
    623             ( const uchar* src1, int srcstep1, uchar scalar,
    624               uchar* dst, int dststep, CvSize size ))
    625 IPCVAPI_EX( CvStatus, icvThreshold_GTVal_8u_C1R,
    626             "ippiThreshold_GTVal_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI),
    627             ( const uchar* pSrc, int srcstep, uchar* pDst, int dststep,
    628               CvSize size, uchar threshold, uchar value ))
    629 IPCVAPI_EX( CvStatus, icvThreshold_GTVal_32f_C1R,
    630             "ippiThreshold_GTVal_32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI),
    631             ( const float* pSrc, int srcstep, float* pDst, int dststep,
    632               CvSize size, float threshold, float value ))
    633 IPCVAPI_EX( CvStatus, icvThreshold_LTVal_8u_C1R,
    634             "ippiThreshold_LTVal_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI),
    635             ( const uchar* pSrc, int srcstep, uchar* pDst, int dststep,
    636               CvSize size, uchar threshold, uchar value ))
    637 IPCVAPI_EX( CvStatus, icvThreshold_LTVal_32f_C1R,
    638             "ippiThreshold_LTVal_32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPI),
    639             ( const float* pSrc, int srcstep, float* pDst, int dststep,
    640               CvSize size, float threshold, float value ))
    641 
    642 /****************************************************************************************\
    643 *                                 Canny Edge Detector                                    *
    644 \****************************************************************************************/
    645 
    646 IPCVAPI_EX( CvStatus, icvCannyGetSize, "ippiCannyGetSize", 0/*CV_PLUGINS1(CV_PLUGIN_IPPCV)*/,
    647            ( CvSize roiSize, int* bufferSize ))
    648 
    649 IPCVAPI_EX( CvStatus, icvCanny_16s8u_C1R, "ippiCanny_16s8u_C1R", 0/*CV_PLUGINS1(CV_PLUGIN_IPPCV)*/,
    650     ( const short* pSrcDx, int srcDxStep, const short* pSrcDy, int srcDyStep,
    651       uchar*  pDstEdges, int dstEdgeStep, CvSize roiSize, float lowThresh,
    652       float  highThresh, void* pBuffer ))
    653 
    654 
    655 /****************************************************************************************\
    656 *                                 Radial Distortion Removal                              *
    657 \****************************************************************************************/
    658 
    659 IPCVAPI_EX( CvStatus, icvUndistortGetSize, "ippiUndistortGetSize",
    660             CV_PLUGINS1(CV_PLUGIN_IPPCV), ( CvSize roiSize, int *pBufsize ))
    661 
    662 IPCVAPI_EX( CvStatus, icvCreateMapCameraUndistort_32f_C1R,
    663             "ippiCreateMapCameraUndistort_32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    664             (float *pxMap, int xStep, float *pyMap, int yStep, CvSize roiSize,
    665             float fx, float fy, float cx, float cy, float k1, float k2,
    666             float p1, float p2, uchar *pBuffer ))
    667 
    668 #define ICV_UNDISTORT_RADIAL( flavor, cn, arrtype )                                 \
    669 IPCVAPI_EX( CvStatus, icvUndistortRadial_##flavor##_C##cn##R,                       \
    670     "ippiUndistortRadial_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPCV),      \
    671     ( const arrtype* pSrc, int srcStep, uchar* pDst, int dstStep, CvSize roiSize,   \
    672       float fx, float fy, float cx, float cy, float k1, float k2, uchar *pBuffer ))
    673 
    674 ICV_UNDISTORT_RADIAL( 8u, 1, uchar )
    675 ICV_UNDISTORT_RADIAL( 8u, 3, uchar )
    676 
    677 #undef ICV_UNDISTORT_RADIAL
    678 
    679 /****************************************************************************************\
    680 *                            Subpixel-accurate rectangle extraction                      *
    681 \****************************************************************************************/
    682 
    683 #define ICV_COPY_SUBPIX( flavor, cn, srctype, dsttype )                     \
    684 IPCVAPI_EX( CvStatus, icvCopySubpix_##flavor##_C##cn##R,                    \
    685     "ippiCopySubpix_" #flavor "_C" #cn "R", CV_PLUGINS1(CV_PLUGIN_IPPCV),   \
    686     ( const srctype* pSrc, int srcStep, dsttype* pDst, int dstStep,         \
    687     CvSize size, float dx, float dy ))
    688 
    689 ICV_COPY_SUBPIX( 8u, 1, uchar, uchar )
    690 ICV_COPY_SUBPIX( 8u32f, 1, uchar, float )
    691 //ICV_COPY_SUBPIX( 32f, 1, float, float )
    692 
    693 IPCVAPI_EX( CvStatus, icvCopySubpix_32f_C1R,
    694     "ippiCopySubpix_32f_C1R", 0,
    695     ( const float* pSrc, int srcStep, float* pDst, int dstStep,
    696     CvSize size, float dx, float dy ))
    697 
    698 #undef ICV_COPY_SUBPIX
    699 
    700 /****************************************************************************************\
    701 *                                Lucas-Kanade Optical Flow                               *
    702 \****************************************************************************************/
    703 
    704 IPCVAPI_EX( CvStatus, icvOpticalFlowPyrLKInitAlloc_8u_C1R,
    705             "ippiOpticalFlowPyrLKInitAlloc_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    706             ( void** ppState, CvSize roiSize, int winSize, int hint ))
    707 
    708 IPCVAPI_EX( CvStatus, icvOpticalFlowPyrLKFree_8u_C1R,
    709             "ippiOpticalFlowPyrLKFree_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    710             ( void* pState ))
    711 
    712 IPCVAPI_EX( CvStatus, icvOpticalFlowPyrLK_8u_C1R,
    713             "ippiOpticalFlowPyrLK_8u_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    714             ( CvPyramid *pPyr1, CvPyramid *pPyr2,
    715             const float *pPrev, float* pNext, char *pStatus,
    716             float *pError, int numFeat, int winSize,
    717             int maxLev, int maxIter, float threshold, void* state ))
    718 
    719 
    720 /****************************************************************************************\
    721 *                                 Haar Object Detector                                   *
    722 \****************************************************************************************/
    723 
    724 IPCVAPI_EX( CvStatus, icvIntegral_8u32s_C1R,
    725             "ippiIntegral_8u32s_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    726             ( const uchar* pSrc, int srcStep, int* pDst, int dstStep,
    727               CvSize roiSize, int val ))
    728 
    729 IPCVAPI_EX( CvStatus, icvSqrIntegral_8u32s64f_C1R,
    730             "ippiSqrIntegral_8u32s64f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    731             ( const uchar* pSrc, int srcStep,
    732               int* pDst, int dstStep, double* pSqr, int sqrStep,
    733               CvSize roiSize, int val, double valSqr ))
    734 
    735 IPCVAPI_EX( CvStatus, icvRectStdDev_32f_C1R,
    736             "ippiRectStdDev_32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    737             ( const float* pSrc, int srcStep,
    738               const double* pSqr, int sqrStep, float* pDst, int dstStep,
    739               CvSize roiSize, CvRect rect ))
    740 
    741 IPCVAPI_EX( CvStatus, icvHaarClassifierInitAlloc_32f,
    742             "ippiHaarClassifierInitAlloc_32f", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    743             ( void **pState, const CvRect* pFeature, const float* pWeight,
    744               const float* pThreshold, const float* pVal1,
    745               const float* pVal2, const int* pNum, int length ))
    746 
    747 IPCVAPI_EX( CvStatus, icvHaarClassifierFree_32f,
    748             "ippiHaarClassifierFree_32f", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    749             ( void *pState ))
    750 
    751 IPCVAPI_EX( CvStatus, icvApplyHaarClassifier_32f_C1R,
    752             "ippiApplyHaarClassifier_32f_C1R", CV_PLUGINS1(CV_PLUGIN_IPPCV),
    753             ( const float* pSrc, int srcStep, const float* pNorm,
    754               int normStep, uchar* pMask, int maskStep,
    755               CvSize roi, int *pPositive, float threshold,
    756               void *pState ))
    757 
    758 #endif /*_CV_IPP_H_*/
    759 
    760