在对图像处理中,可能经常会遇到需要产生随机数的问题,以前一直都是使用c风格算法产生随机数,前几天发现,其实在opencv中也有提供过产生随机数的函数,那就是种子随机数产生器RNG,从网上的资料知道,这个可以产生均匀分布的随机数和高斯分布的随机数。下面就贴一些代码来介绍一下。
RNG rng;
double a = rng.uniform(0, 1); // 由于输入参数都是int 型,因此产生的随机数只能是[0,1)之间的整数,也就是0
double b = rng.uniform((double)0, (double)1); // 随机产生区间为[0,1)之间的双精度浮点数
double c = rng.uniform(0.f, 1.f); //随机产生区间为[0,1)之间的单精度浮点数
在产生随机数的时候,尤其需要注意的就是double a = rng.uniform(0, 1);稍微不注意就有可能出现问题。