_optcv.h.svn-base

来自「非结构化路识别」· SVN-BASE 代码 · 共 554 行 · 第 1/2 页

SVN-BASE
554
字号
/*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*/

#ifndef __OPTCV_H_
#define __OPTCV_H_


/****************************************************************************************\
*                                 General type convolution                               *
\****************************************************************************************/

IPCVAPI( CvStatus, icvFilterInitAlloc, (
             int roiWidth, CvDataType dataType, int channels,
             CvSize elSize, CvPoint elAnchor,
             const void* elData, int elementFlags,
             struct CvFilterState ** morphState ))

IPCVAPI( CvStatus, icvFilterFree, ( struct CvFilterState ** morphState ))

/****************************************************************************************\
*                                         AbsDiff                                        *
\****************************************************************************************/

#define IPCV_ABS_DIFF( flavor, arrtype, scalartype )                                \
IPCVAPI( CvStatus, icvAbsDiffC_##flavor##_C1R,                                      \
    ( const arrtype* src, int srcstep, arrtype* dst, int dststep,                   \
      CvSize size, const scalartype* scalar ))

IPCV_ABS_DIFF( 8u, uchar, int )
IPCV_ABS_DIFF( 32f, float, float )
IPCV_ABS_DIFF( 64f, double, double )

#undef IPCV_ABS_DIFF

/****************************************************************************************/
/*                               Flood Filling functions                                */
/****************************************************************************************/

IPCVAPI(CvStatus, icvEigenValsVecsGetSize, ( int roiWidth,int apertureSize,
                                              int avgWindow, int* bufferSize ))

IPCVAPI(CvStatus, icvEigenValsVecs_8u32f_C1R, ( const unsigned char* pSrc, int srcStep,
                                                 float* pEigenVV, int eigStep,
                                                 CvSize roiSize, int apertureSize,
                                                 int avgWindow, void* pBuffer ))

IPCVAPI(CvStatus, icvEigenValsVecs_8s32f_C1R, ( const char* pSrc, int srcStep,
                                                 float* pEigenVV, int eigStep,
                                                 CvSize roiSize, int apertureSize,
                                                 int avgWindow, void* pBuffer ))

IPCVAPI(CvStatus, icvEigenValsVecs_32f_C1R, ( const float* pSrc, int srcStep,
                                               float* pEigenVV, int eigStep,
                                               CvSize roiSize, int apertureSize,
                                               int avgWindow, void* pBuffer ))

/* //////////////////////////////////////////////////////////////////////////// *\
**********************************************************************************
\* //////////////////////////////////////////////////////////////////////////// */

IPCVAPI(CvStatus, icvMinAreaRect, (CvPoint * points, int n,
                                   int left, int bottom, int right, int top,
                                   CvPoint2D32f * anchor,
                                   CvPoint2D32f * vect1, CvPoint2D32f * vect2) )

/****************************************************************************************/
/*                               Thresholding functions                                 */
/****************************************************************************************/

IPCVAPI(CvStatus , icvThresh_8u_C1R, ( const uchar*  src, int  src_step,
                                       uchar*  dst, int  dst_step,
                                       CvSize  roi, int  thresh,
                                       uchar   max_val, CvThreshType type ))

IPCVAPI(CvStatus , icvThresh_8s_C1R, ( const char*   src, int  src_step,
                                       char*   dst, int  dst_step,
                                       CvSize  roi, int  thresh,
                                       char    max_val, CvThreshType type ))

IPCVAPI(CvStatus , icvThresh_32f_C1R,( const float*  src, int    src_step,
                                       float*  dst, int    dst_step,
                                       CvSize  roi, float  thresh,
                                       float   max_val, CvThreshType type))

/****************************************************************************************/
/*                                  Detection functions                                 */
/****************************************************************************************/

IPCVAPI( CvStatus, icvPreCornerDetect_8u32f_C1R, ( const uchar* src, int  srcStep,
                                                   float*  corner, int cornerStep,
                                                   CvSize roi, int  apertureSize ))

IPCVAPI( CvStatus, icvPreCornerDetect_8s32f_C1R, ( const char* src, int  srcStep,
                                                   float*  corner, int cornerStep,
                                                   CvSize roi, int  apertureSize ))

IPCVAPI( CvStatus, icvPreCornerDetect_32f_C1R, ( const float* src, int  srcStep,
                                                 float*  corner, int cornerStep,
                                                 CvSize roi, int  apertureSize ))


/****************************************************************************************/
/*                            Snakes                                                    */
/****************************************************************************************/
IPCVAPI( CvStatus, icvSnakeImage8uC1R, ( uchar*    src,  int  srcStep,
                                       CvSize  roi,  CvPoint* points,
                                       int  length, float* alpha,
                                       float* beta, float* gamma,
                                       CvCoeffType coeffUsage, CvSize  win,
                                       CvTermCriteria criteria ))

IPCVAPI( CvStatus, icvSnakeImageGrad8uC1R,( uchar*    src, int  srcStep,
                                          CvSize  roi, CvPoint* points,
                                          int  length,  float* alpha,
                                          float* beta,  float* gamma,
                                          CvCoeffType coeffUsage, CvSize win,
                                          CvTermCriteria criteria ))

/****************************************************************************************\
*                                      Eigen objects                                     *
\****************************************************************************************/

IPCVAPI( CvStatus, icvCalcCovarMatrixEx_8u32fR, ( int nObjects, void* input, int objStep,
                                                 int ioFlags, int ioBufSize,
                                                 uchar* buffer, void* userData,
                                                 float* avg, int avgStep, CvSize size,
                                                 float* covarMatrix ) )

IPCVAPI( CvStatus, icvCalcEigenObjects_8u32fR, ( int nObjects, void* input, int objStep,
                                                   void* output, int eigStep,
                                                   CvSize size, int ioFlags,
                                                   int ioBufSize, void* userData,
                                                   CvTermCriteria* calcLimit,
                                                   float* avg, int avgStep,
                                                   float* eigVals ) )

IPCVAPI(float, icvCalcDecompCoeff_8u32fR, ( uchar* obj,    int objStep,
                                            float* eigObj, int eigStep,
                                            float* avg,    int avgStep, CvSize size ))

IPCVAPI(CvStatus , icvEigenDecomposite_8u32fR, ( uchar* obj, int objStep, int nEigObjs,
                                                   void* eigInput, int eigStep,
                                                   int ioFlags, void* userData,
                                                   float* avg, int avgStep,
                                                   CvSize size, float* coeffs ) )

IPCVAPI(CvStatus, icvEigenProjection_8u32fR,(int nEigObjs, void* eigInput, int eigStep,
                                             int ioFlags, void* userData,
                                             float* coeffs, float* avg, int avgStep,
                                             uchar* rest, int restStep, CvSize size))



////////////////////////////////////// SampleLine ////////////////////////////////////////

#define IPCV_SAMPLE_LINE( flavor, arrtype )                                 \
IPCVAPI( CvStatus, icvSampleLine_##flavor##_C1R,                            \
( CvLineIterator* iterator, arrtype* buffer, int count ))                   \
IPCVAPI( CvStatus, icvSampleLine_##flavor##_C2R,                            \
( CvLineIterator* iterator, arrtype* buffer, int count ))                   \
IPCVAPI( CvStatus, icvSampleLine_##flavor##_C3R,                            \
( CvLineIterator* iterator, arrtype* buffer, int count ))

IPCV_SAMPLE_LINE( 8u, uchar )
IPCV_SAMPLE_LINE( 32f, float )

#undef IPCV_SAMPLE_LINE

/****************************************************************************************/
/*                             HMM (Hidden Markov Models)                               */
/****************************************************************************************/

IPCVAPI( CvStatus, icvCreate2DHMM, ( CvEHMM** hmm, 
                                     int* state_number, 
                                     int* num_mix, int obs_size ))

IPCVAPI( CvStatus, icvRelease2DHMM, ( CvEHMM** hmm ))


IPCVAPI( CvStatus, icvCreateObsInfo, ( CvImgObsInfo** obs_info, 
                                       CvSize num_obs, int obs_size ) ) 

IPCVAPI( CvStatus, icvReleaseObsInfo, ( CvImgObsInfo** obs_info ) )


IPCVAPI( CvStatus, icvUniformImgSegm,( CvImgObsInfo* obs_info, CvEHMM* ehmm ) )

IPCVAPI( CvStatus, icvInitMixSegm, ( CvImgObsInfo** obs_info_array, 
                                     int num_img, CvEHMM* hmm  ))

IPCVAPI( CvStatus, icvEstimateHMMStateParams, ( CvImgObsInfo** obs_info_array,
                                                int num_img, CvEHMM* hmm ))

IPCVAPI( CvStatus, icvEstimateTransProb, ( CvImgObsInfo** obs_info_array, 
                                           int num_img, CvEHMM* hmm ))

IPCVAPI( CvStatus, icvEstimateObsProb, ( CvImgObsInfo* obs_info, 
                                         CvEHMM* hmm )) 

IPCVAPI( float, icvEViterbi, (CvImgObsInfo* obs_info, CvEHMM* hmm )) 


IPCVAPI( CvStatus, icvMixSegmL2, ( CvImgObsInfo** obs_info_array, 
                                   int num_img, CvEHMM* hmm  ))


/* end of HMM functions*/  

/* //////////////////////////////////////////////////////////////////////////////////// */
/* //////////////////////////////////////////////////////////////////////////////////// */
/* //////////////////////////////////////////////////////////////////////////////////// */

/*    IPPM Group Functions                                                              */

/* //////////////////////////////////////////////////////////////////////////////////// */
/* //////////////////////////////////////////////////////////////////////////////////// */
/* //////////////////////////////////////////////////////////////////////////////////// */

/****************************************************************************************/
/*                                Vector operations                                     */
/****************************************************************************************/

#define IPCV_DOTPRODUCT_2D( flavor, arrtype, sumtype )                                  \
IPCVAPI( CvStatus,                                                                      \
icvDotProduct_##flavor##_C1R, ( const arrtype* src1, int step1,                         \
                                const arrtype* src2, int step2,                         \
                                CvSize size, sumtype* _sum ))

IPCV_DOTPRODUCT_2D( 8u, uchar, int64 )
IPCV_DOTPRODUCT_2D( 8s, char, int64 )
IPCV_DOTPRODUCT_2D( 16s, short, int64 )
IPCV_DOTPRODUCT_2D( 32s, int, double )
IPCV_DOTPRODUCT_2D( 32f, float, double )
IPCV_DOTPRODUCT_2D( 64f, double, double )

#undef IPCV_DOTPRODUCT_2D

IPCVAPI( CvStatus, icvCrossProduct2L_32f, ( const float* src1,
                                            const float* src2,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?