RNG随机数用法简介
注:RNG类是opencv里C++的随机数产生器,所以使用的话需要包含opencv头文件
实例一:每次运行输出不同的随机数
代码:
RNG random((unsigned)time(NULL));//以系统时间作为种子,所以每次输出的random不同
for (size_t i = 0; i < 5; i++)
{
cout << 0+random.gaussian(0.1) << endl;//输出均值为0,标准差为0.1的随机数
}
结果:
实例二:每次运行输出相同的随机数
代码:
RNG random(1);//种子固定为1,所以每次输出的随机数一样
for (size_t i = 0; i < 5; i++)
{
cout << 0+random.gaussian(0.1) << endl;//输出均值为0,标准差为0.1的随机数
}
结果:
实例三:使用随机数填充Mat
代码1:产生[1,1000)均匀分布的int随机数填充Mat
产生[1,1000)均匀分布的int随机数填充fillM
RNG rng((unsigned)time(NULL));
Mat_<int>fillM(3, 3);//三行三列的Mat
rng.fill