函数cvRound,cvFloor,cvCeil 都是用一种舍入的方法将输入浮点数转换成整数:
- cvRound():返回跟参数最接近的整数值,即四舍五入;
- cvFloor():返回不大于参数的最大整数值,即向下取整;
- cvCeil():返回不小于参数的最小整数值,即向上取整;
OpenCV源码:
cvRound()
int cvRound( double value )
{
return (int)(value + (value >= 0 ? 0.5 : -0.5));
}
int cvRound(float value)
{
return (int)(value + (value >= 0 ? 0.5f : -0.5f));
}
int cvRound( int value )
{
return value;
}
cvFloor()
int cvFloor( double value )
{
int i = (int)value;
return i - (i > value);
}
int cvFloor( float value )
{
int i = (int)value;
return i - (i > value);
}
int cvFloor( int value )
{
return value;
}
cvCeil()
int cvCeil( double value )
{
int i = (int)value;
return i + (i < value);
}
int cvCeil( float value )
{
int i = (int)value;
return i + (i < value);
}
int cvCeil( int value )
{
return value;
}