Opencv学习(5)——随机数产生器RNG

cv::RNG 类

随机数发生器。 它封装了状态(当前是64位整数),并具有返回标量随机值和使用随机值填充数组的方法。 目前它支持均匀和高斯(正态)分布

gaussian()

double cv::RNG::gaussian 	( 	double  	sigma	) 
// sigma: 分布的标准偏差
//该方法使用MWC算法转换状态,并从高斯分布N(0,sigma)返回下一个随机数	

next()

int cv::RNG::uniform ( int a,int b ) 	
//从[a,b)范围返回均匀分布的整数随机数
//使用MWC算法转换状态,并从范围[a,b)返回从输入参数类型推导出的指定类型的下一个均匀分布的随机数。

介绍一个uniform的使用事项,就是比如利用它产生0~1的随机数的问题,具体代码如下:

RNG rng;
// always produces 0
double a = rng.uniform(0, 1);
// produces double from [0, 1)
double a1 = rng.uniform((double)0, (double)1);
// produces float from [0, 1)
double b = rng.uniform(0.f, 1.f);
// produces double from [0, 1)
double c = rng.uniform(0., 1.);
// may cause compiler error because of ambiguity:
// RNG::uniform(0, (int)0.999999)? or RNG::uniform((double)0, 0.99999)?
double d = rng.uniform(0, 0.999999);

你可能感兴趣的:(opencv)