_cvutils.h.svn-base
来自「非结构化路识别」· SVN-BASE 代码 · 共 328 行 · 第 1/2 页
SVN-BASE
328 行
{ \
stack[++sp].lb = j + 1; \
stack[sp].ub = ub; \
} \
ub = j - 1; \
} \
else \
{ \
if( j - 1 > lb) \
{ \
stack[++sp].lb = lb; \
stack[sp].ub = j - 1; \
} \
lb = j + 1; \
} \
} \
} \
} \
}
#define CV_IMPLEMENT_QSORT( func_name, T, less_than ) \
CV_IMPLEMENT2_QSORT( func_name, T, less_than, int )
/****************************************************************************************\
* Mathematical functions *
\****************************************************************************************/
/* calculates 1/sqrt(val) */
double icvInvSqrt64d( double val );
/*
Finds L1 norm between two blocks.
!!!! function doesn't perform EMMS !!!!
*/
int icvCmpBlocksL1_8u_C1( const uchar* vec1, const uchar* vec2, int len );
/*
Finds squared L2 norm between two blocks.
!!!! function don't perform EMMS (except 32f flavor function) !!!!
*/
int64 icvCmpBlocksL2_8u_C1( const uchar* vec1, const uchar* vec2, int len );
int64 icvCmpBlocksL2_8s_C1( const char* vec1, const char* vec2, int len );
double icvCmpBlocksL2_32f_C1( const float* vec1, const float* vec2, int len );
int64 icvSumPixels_8u_C1( const uchar* vec, int len );
int64 icvSumPixels_8s_C1( const char* vec, int len );
double icvSumPixels_32f_C1( const float* vec, int len );
/*
Calculates cross correlation for two blocks.
!!!! function doesn't perform EMMS !!!!
*/
int64 icvCrossCorr_8u_C1( const uchar* vec1, const uchar* vec2, int len );
int64 icvCrossCorr_8s_C1( const char* vec1, const char* vec2, int len );
double icvCrossCorr_32f_C1( const float* vec1, const float* vec2, int len );
CvStatus icvProjectPoints( int numPoints,
CvPoint3D64d* objectPoints,
CvVect64d rotVect,
CvVect64d transVect,
CvVect64d focalLength,
CvPoint2D64d principalPoint,
CvVect64d distortion,
CvPoint2D64d* imagePoints,
CvVect64d derivPointsRot,
CvVect64d derivPointsTrans,
CvVect64d derivPointsFocal,
CvVect64d derivPointsPrincipal,
CvVect64d derivPointsDistort);
float icvFastArctan32f( float y, float x );
#define CV_DESCALE(x,n) (((x) + (1 << ((n)-1))) >> (n))
#define CV_FLT_TO_FIX(x,n) cvRound((x)*(1<<(n)))
int icvInitLineIterator( const CvMat* mat, CvPoint pt1, CvPoint pt2,
CvLineIterator* iterator,
int connectivity, int left_to_right = 0 );
void icvSepConvSmall3_32f( float* src, int src_step,
float* dst, int dst_step,
CvSize src_size,
const float* kx, const float* ky,
float* buffer );
typedef struct CvFastDiv
{
unsigned delta, scale, divisor;
}
CvFastDiv;
#define CV_FAST_DIV_SHIFT 32
CV_INLINE CvFastDiv icvFastDiv( int divisor );
CV_INLINE CvFastDiv icvFastDiv( int divisor )
{
CvFastDiv fastdiv;
assert( divisor >= 1 );
uint64 temp = ((uint64)1 << CV_FAST_DIV_SHIFT)/divisor;
fastdiv.divisor = divisor;
fastdiv.delta = (unsigned)(((temp & 1) ^ 1) + divisor - 1);
fastdiv.scale = (unsigned)((temp + 1) >> 1);
return fastdiv;
}
#define CV_FAST_DIV( x, fastdiv ) \
((int)(((int64)((x)*2 + (int)(fastdiv).delta))*(int)(fastdiv).scale>>CV_FAST_DIV_SHIFT))
#define CV_FAST_UDIV( x, fastdiv ) \
((int)(((uint64)((x)*2 + (fastdiv).delta))*(fastdiv).scale>>CV_FAST_DIV_SHIFT))
/* calculate binomial kernel */
void icvCalcKer( char *kernel, int order, int size, int datatype, int origin );
/* extract packed color */
void icvExtractColor( double color, int type, void* buffer );
/* initialize accumulation table */
void icvInitAccTable( CvFuncTable* tabfl, CvFuncTable* tabdb,
CvBigFuncTable* masktab );
/****************************************************************************************\
* IEEE 754 helper functions *
\****************************************************************************************/
#ifdef CV_CHECK_FOR_NANS
#define CV_CHECK_NANS( arr ) cvCheckArray((arr))
#define CV_CHECK_NANS_32F( src, srcstep, size ) \
assert(icvCheckArray_32f_C1R( (src), (srcstep), (size), 0, 0, 0 )>=0)
#define CV_CHECK_NANS_64F( src, srcstep, size ) \
assert(icvCheckArray_64f_C1R( (src), (srcstep), (size), 0, 0, 0 )>=0)
#else
#define CV_CHECK_NANS( arr )
#define CV_CHECK_NANS_32F( src, srcstep, size )
#define CV_CHECK_NANS_64F( src, srcstep, size )
#endif
#define icvCheckVector_32f( src, len ) \
CV_CHECK_NANS_32F( (src), 0, cvSize(1,(len)))
#define icvCheckVector_64f( src, len ) \
CV_CHECK_NANS_64F( (src), 0, cvSize(1,(len)))
#define icvCheckVector_64d icvCheckVector_64f
#define icvCheckMatrix_32f( src, w, h ) \
CV_CHECK_NANS_32F( (src), 0, cvSize(1,(w)*(h)))
#define icvCheckMatrix_64f( src, len ) \
CV_CHECK_NANS_64F( (src), 0, cvSize(1,(w)*(h)))
#define icvCheckMatrix_64d icvCheckMatrix_64f
#endif /*_IPCVUTILS_H_*/
/* End of file. */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?