OpenCV中随机数的生成

产生随机数有很多方法
首先是自己构造RNG的方法
RNG()
RNG(uint16 state)
后一个带state参数的构造器可以指定初始状态,类似C++中srand的种子
如果state=0,则回到前一个默认构造器


构造好之后可以使用RNG对象很多方法来获取随机数
比较常用的比如
//均匀分布,高斯分布的随机数
RNG::uniform

RNG::gaussian


//均匀分布或高斯分布填充矩阵

RNG::fill


//括号运算符获取下一个整型

unsigned int RNG::operator()


//强制类型转换获取下一个随机数
RNG::operator ushort()
RNG::operator double()
……


其次是使用theRNG()获取默认的RNG对象

经测试,theRNG()与默认构造器RNG()构造出来的对象是一样的


不构造RNG对象直接使用
randu
randn
两个函数获取或填充矩阵时,使用的就是默认的RNG对象
使用默认RNG对象的一个特点是,每次运行时构造出来的随机数都是一样的

这个有利有弊,每次构造出来的随机数一样有助于程序测试


如果要求每次构造出来的不一样,可以自己构造RNG对象,并用当前时间作为state
RNG rng(time(NULL))
使用time函数记得#include <time.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值