我想播种randn函数,但无法执行。
srand(time(NULL));
Mat mymat = Mat::zeroes(1024,1024,CV_32F);
randn(mymat,0,1);
是否应该给我一个名为
mymat
,其mean = 0
和variance = 1
的随机垫?但是,每次运行都会给出相同的mymat
。这是randn的链接,它声称能起作用。
我尝试给出不同的数字而不是time(NULL),但是所有的随机数都相同。我从另一台机器检查了同样的东西,它与第一台机器给出了相同的输出。因此播种不起作用。
谢谢,
最佳答案
您可以使用以下代码段为OpenCV功能设置种子:
cv::theRNG().state = seed;
多线程程序有一个微妙之处-OpenCV使用线程本地随机数生成器,因此您需要(重置)来自同一线程的种子。