rng.uniform

来源:互联网 发布:js什么是实例化对象 编辑:程序博客网 时间:2024/04/29 22:22
opencv中生成随机数的方法,有和MATLAB差不多的randn()也有,但是并没有那么好用,就是不能决定产生随机数的种子是什么,可以是高斯,或者是均匀分布。
其实在opencv中,使用rng(随机数产生器),更加合适,当时在stackflow上看到的,然后自己去搜索了一下
RNG 是一个类,首先要产生一个对象,rng_R, next可以取出下一个随机数,uniform函数可以返回指定范围的随机数,gaussian函数返回一个高斯随机数,fill则用随机数填充矩阵。
还有一些随机数相关的函数,比如randu可以产生一个均匀分布的随机数或者矩阵,randn可以产生一个正态分布的随机数,randShuffle可以随机打乱矩阵元素。
cv::RNG rng_R( cv::getTickCount() );//产生对象rng_R,随时间每次产生的随机数都不同cv::Mat RandMap_R(row,col,CV_32FC3);//创建矩阵,用来装随机数rng_L.fill(RandMap_R, cv::RNG::UNIFORM, 0.f, 1.f);//用fill命令把随机数装进去,第一个参数:装随机数的矩阵;第二个参数:cv::RNG::UNIFORM:均匀分布的随机数,cv::RNG::GAUSSIAN高斯分布的随机数;第三个参数:产生的随机数的范围,上面的例子表示float型:0~1(也可以使float,double,最好不要int,否则最后的随机数都是0,你懂得~)
0 0
原创粉丝点击