opencv中RNG 函数释义

RNG 随机数产生器

RNG g_rng(12345);

 /****************************************************************************************************/

用OpenCV做算法的朋友们肯定为随机数烦恼过,新版本一直支持随机数产生器啦,而且还继续支持之前版本的c格式的函数,不过与时俱进,我这里介绍C++的RNG类。它可以压缩一个64位的i整数并可以得到scalar和array的随机数。目前的版本支持均匀分布随机数和Gaussian分布随机数。随机数的产生采用的是Multiply-With-Carry算法和Ziggurat算法。

其构造函数的初始化可以传入一个64位的整型参数作为随机数产生器的初值。next可以取出下一个随机数,uniform函数可以返回指定范围的随机数,gaussian函数返回一个高斯随机数,fill则用随机数填充矩阵。

这里介绍一个uniform的使用事项,就是比如利用它产生0~1的随机数的问题,具体代码如下:

RNG rng;
// always produces 0
double a = rng.uniform(0, 1);
// produces double from [0, 1)
double a1 = rng.uniform((double)0, (double)1);
// produces float from [0, 1)
double b = rng.uniform(0.f, 1.f);
// produces double from [0, 1)
double c = rng.uniform(0., 1.);
// may cause compiler error because of ambiguity:
// RNG::uniform(0, (int)0.999999)? or RNG::uniform((double)0,0.99999)?
double d = rng.uniform(0, 0.999999);

 

就是不能写成rng.uniform( 0 ,1),因为输入为int型参数,会调用uniform(int,int),只能产生0。请大家注意使用^_^

还有一些随机数相关的函数,比如randu可以产生一个均匀分布的随机数或者矩阵,randn可以产生一个正态分布的随机数,randShuffle可以随机打乱矩阵元素

再简单介绍一下c版本的随机数产生器的相关函数,有cvRNG、cvRandArr、cvRandInt、cvRandReal

【转】http://blog.csdn.net/yang_xian521/article/details/6931385

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: setscrollbar函数OpenCV的一个函数,用于创建滚动条并将其附加到指定的窗口上。该函数的语法如下:void cv::setscrollbar(const char* bar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change=NULL )。其,bar_name是滚动条的名称,window_name是要将滚动条附加到的窗口的名称,value是指向整数变量的指针,该变量将存储滚动条的当前值,count是滚动条的最大值,on_change是回调函数,用于在滚动条值更改时执行某些操作。 ### 回答2: setScrollbar函数OpenCV图像处理库用于设置滚动条的一个函数。滚动条是一种常见的用户界面元素,允许用户通过拖动滑块来控制某个值的范围。 setScrollbar函数的原型为: ```c++ void setScrollbar(const char* winname, int pos, int* value, int count, TrackbarCallback onChange = 0, void* userdata = 0) ``` 其,winname是窗口的名称,pos是滚动条控件在窗口的位置,value是一个指向整数的指针,用于存储滚动条的当前值,count是滚动条的最大值,onChange是回调函数,在滚动条值发生改变时被调用,userdata是传递给回调函数的用户自定义数据。 通过调用setScrollbar函数,我们可以在OpenCV窗口创建一个滚动条,并将其放置在指定的位置。滚动条的位置和值可以通过value参数来获取和设置。onChange回调函数可以在滚动条值发生变化时执行一些操作,例如根据滚动条的值来调整图像的对比度或亮度。 使用setScrollbar函数,我们可以为用户提供一种交互方式,让他们通过滚动条来控制某些图像处理操作的参数,从而实现图像的动态调整和编辑。 总而言之,setScrollbar函数OpenCV用于创建和设置滚动条的函数,通过它,我们可以为图像处理程序添加交互性,并允许用户通过滚动条来调整某些图像处理操作的参数。 ### 回答3: OpenCV的setscrollbar函数是用于创建一个滚动条控件的函数。滚动条可以用于图像的平移、放大、缩小等操作。该函数的原型如下: ```cpp int cv::setscrollbar(const String& winname, int pos, int size, ScrollbarCallback onChange=NULL, void* userdata=NULL) ``` 参数解释: - winname:窗口的名称。 - pos:滚动条的初始位置。这个值决定了滚动条的初始位置。 - size:滚动条的长度。滚动条的长度决定了滚动条的可滑动范围。 - onChange:回调函数,当滚动条位置发生改变时调用。 - userdata:传递给回调函数的用户数据。 使用setscrollbar函数,可以在指定的窗口创建一个滚动条。可以通过回调函数来获取滚动条当前位置的变化,并做相应的图像操作。例如,可以在滚动条回调函数改变图像的位置、大小或者进行其他处理。这样,当滚动条位置发生改变时,图像也会做出相应的变化。 通过调用setscrollbar函数,可以方便地在OpenCV窗口创建一个滚动条控件,实现图像的平移、放大、缩小等功能的交互操作。滚动条的变化通过回调函数来实现,让用户可以根据自己的需求来定制滚动条的功能。这在图像处理的交互式应用非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值