Как посеять функцию randn opencv

Я хочу запустить функцию ранда, но я не могу это сделать.

srand(time(NULL));
Mat mymat = Mat::zeroes(1024,1024,CV_32F);
randn(mymat,0,1);

Разве это не дает мне случайный коврик по имени mymat, чья mean = 0, а также variance = 1, Но это не работает так. Даёт же mymat в каждом заезде.

Вот ссылка на randn который претендует на работу.

Я попытался дать разные числа вместо времени (NULL), но у всех одинаковые выходные рандомы. Я проверил то же самое с другой машины, он выдает тот же результат с первой машиной. Так что посев не работает.

Спасибо,

4

Решение

Вы можете установить seed для функций OpenCV, используя следующий фрагмент:

cv::theRNG().state = seed;

Для многопоточных программ есть тонкость — OpenCV использует локальные генераторы случайных чисел, поэтому вам нужно (пере) установить начальное число из того же потока.

12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]