Я хочу запустить функцию ранда, но я не могу это сделать.
srand(time(NULL));
Mat mymat = Mat::zeroes(1024,1024,CV_32F);
randn(mymat,0,1);
Разве это не дает мне случайный коврик по имени mymat
, чья mean = 0
, а также variance = 1
, Но это не работает так. Даёт же mymat
в каждом заезде.
Вот ссылка на randn который претендует на работу.
Я попытался дать разные числа вместо времени (NULL), но у всех одинаковые выходные рандомы. Я проверил то же самое с другой машины, он выдает тот же результат с первой машиной. Так что посев не работает.
Спасибо,
Вы можете установить seed для функций OpenCV, используя следующий фрагмент:
cv::theRNG().state = seed;
Для многопоточных программ есть тонкость — OpenCV использует локальные генераторы случайных чисел, поэтому вам нужно (пере) установить начальное число из того же потока.
Других решений пока нет …