Рассмотрим функции, которые предоставляет OpenCV для генерации псевдо-случайных чисел.
CV_INLINE void cvRandInit( CvRandState* state, double param1,
double param2, int seed,
int disttype CV_DEFAULT(CV_RAND_UNI))
-инициализация работы с ГСЧ
state — указатель на структуру ГСЧ:
typedef struct CvRandState
{
CvRNG state; /* RNG state (the current seed and carry)*/
int disttype; /* distribution type */
CvScalar param[2]; /* parameters of RNG */
}
CvRandState;
param1 — первый параметр распределения (в случае однородного — это нижняя граница диапазона, в случае нормального — величина случайных чисел)
param2 — второй параметр распределения (в случае однородного — это верхняя граница диапазона, в случае нормального — стандартное отклонение случайных чисел).
seed — начальная установка
disttype — тип распределения:
#define CV_RAND_UNI 0
#define CV_RAND_NORMAL 1
CV_INLINE void cvRandSetRange( CvRandState* state, double param1,
double param2, int index CV_DEFAULT(-1))
— изменение диапазона ГСЧ с сохранением состояния ГСЧ
state — указатель на структуру ГСЧ
param1
param2
index
arr — указатель на массив для заполнения
dist_type — тип распределения
param1 — первый параметр распределения (в случае однородного — это нижняя граница диапазона, в случае нормального — величина случайных чисел)
param2 — второй параметр распределения (в случае однородного — это верхняя граница диапазона, в случае нормального — стандартное отклонение случайных чисел).
OpenCV доступна на разных языках. Я, например, пишу на c#, кто-то на python-е, а кто-то может свой собственный язык разработает :) И у него не будет стандартного способа генерации псевдослучайных чисел, или будут свои нехорошие особенности…
Комментарии (8)
RSS свернуть / развернутьчет нифига не получается…
ns5d
ns5d
а где видно что это три процента шума?
Zybr
laborer
Evtomax
laborer
JohnJ
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.