cvRandInit( &rng_state,
0, 1, /* 现在使用虚参数以后再调整 */
0xffffffff /*这里使用一个确定的种子 */,
CV_RAND_UNI /* 指定为均匀分布类型 */ );
首先,CvRandState是opencv提供的另一个生成随机数的结构体,它包含在“xvcompat.h”中。其中,"cvcompat.h"的完整意思是Computer Vision Compatility。{
CvRNG state;
int disttype;
CvScalar param[2];
}
CvRandState;
typedef uint64 CvRNG;
typedef unsigned __int64 uint64;
typedef struct CvScalar
{
double val[4];
}
CvScalar;
然后,需要补充一些更重要的东西。因为我常常用到随机数初始化,是用函数cvRandInt(),但对于CvRandState则用cvRandInit()来初始化。
函数cvRandInit()的用法如下:
用法1:
cvRandInit(CvRandState结构,随机上界,随机下界,均匀分布参数,64bits种子的数字);
用法2:首先,CvRandState是opencv提供的另一个生成随机数的结构体,它包含在“xvcompat.h”中。其中,"cvcompat.h"的完整意思是Computer Vision Compatility。
另外,对于CvRandState来说,它的特色在于可以选定常态分布和均匀分布,但它只能应用于矩阵和一维阵列。
最后,给出CvRandState的结构如下:
typedef struct CvRandState
{
CvRNG state;
int disttype;
CvScalar param[2];
}
CvRandState;
typedef uint64 CvRNG;
typedef unsigned __int64 uint64;
typedef struct CvScalar
{
double val[4];
}
CvScalar;
然后,需要补充一些更重要的东西。因为我常常用到随机数初始化,是用函数cvRandInt(),但对于CvRandState则用cvRandInit()来初始化。
函数cvRandInit()的用法如下:
用法1:
cvRandInit(CvRandState结构,随机上界,随机下界,均匀分布参数,64bits种子的数字);
用法2:
cvRandInit(CvRandState结构,平均数,标准差,常态分布参数,64bits种子的数字);