CV_IMPL void
cvInRangeS( const void* srcarr, CvScalar lower, CvScalar upper, void* dstarr )
{
static CvBigFuncTable inrange_tab;
static int inittab = 0;
CV_FUNCNAME( "cvInRangeS" );
__BEGIN__;
int sctype, type, coi = 0;
int src1_step, dst_step;
CvMat srcstub1, *src1 = (CvMat*)srcarr; //矩阵
CvMat dststub, *dst = (CvMat*)dstarr;
CvSize size;
CvInRangeC Func func;
double buf[8];
if( !inittab ) //第一次调用inittab为0
{
icvInitInRangeCRTable( &inrange_tab ); //初始化Table
inittab = 1;
}
if( !CV_IS_MAT(src1) )
{
CV_CALL( src1 = cvGetMat( src1, &srcstub1, &coi ));
if( coi != 0 )
CV_ERROR( CV_BadCOI, "" );
}
if( !CV_IS_MAT(dst) )
{
CV_CALL( dst = cvGetMat( dst, &dststub, &coi ));
if( coi != 0 )
CV_ERROR( CV_BadCOI, "" );
}
cvInRange函数详解
最新推荐文章于 2024-08-06 15:31:43 发布
cvInRangeS函数用于检查数组元素是否在指定的数值范围内,它接受一个源数组和上下界,输出数组中符合条件的元素置为0xff,否则置0。该函数适用于8位无符号或有符号整数类型的数据,对于单通道或多通道数组,会分别进行比较。
摘要由CSDN通过智能技术生成