OpenCV中随机数的生成
2015-03-22 21:19
225 查看
产生随机数有很多方法
首先是自己构造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>
首先是自己构造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>
相关文章推荐
- 数组的生成及其随机数【OpenCV学习笔记2】
- OpenCV中的随机数生成
- OpenCV 随机数生成
- OpenCV 随机数生成
- OpenCV随机数生成
- OpenCV中的随机数生成
- Opencv-rng随机数生成的使用
- C# 生成随机数(转载)
- 生成N个不相等的随机数
- 使用c#生成不重复的随机数
- string类型转换为int, float, double类型、随机数生成
- 公布一个以前写的随机数生成的方法
- 生成一个区间的随机数
- Sqlserver生成随机数的一些应用 .
- Python生成随机数的方法
- opencv3.0随机数问题
- java 随机数生成工具类
- Opencv:haartraining生成.xml文件过程
- C# 生成随机数
- 生成随机数