GaussRand

class GaussRand(*args, **kwargs)

Bases: pybind11_object

Class for generating random number with normal probability density.

The algorithms and notations used are described in [15] .

The code below shows how to use the random generator to get values that have their mean equal to 10 with a standard deviation equal to 0.5.

#include <iostream>
#include <visp3/core/vpGaussRand.h>

int main()
{
  vpGaussRand noise(0.5, 10);
  for(int i=0; i< 10; i++) {
    std::cout << "noise " << i << ": " << noise() << std::endl;
  }
  return 0;
}

The previous example produces the following printings:

noise 0: 10.645
noise 1: 9.67129
noise 2: 10.1208
noise 3: 10.1039
noise 4: 10.8667
noise 5: 9.89823
noise 6: 9.81414
noise 7: 9.96076
noise 8: 11.0795
noise 9: 9.79229

Note that the previous example produces always the same “random” results. To produce real random values, you need to initialize the random generator with different values using seed() . For example, this could be done using the current time. The code becomes:

#include <iostream>
#include <visp3/core/vpGaussRand.h>
#include <visp3/core/vpTime.h>

int main()
{
  vpGaussRand noise(0.5, 10);
  long seed = (long)vpTime::measureTimeMs();

  noise.seed(seed);
  for(int i=0; i< 10; i++) {
    std::cout << "noise " << i << ": " << noise() << std::endl;
  }
  return 0;
}

Now if you run the previous example you will always get different values:

noise 0: 10.5982
noise 1: 9.19111
noise 2: 9.82498
noise 3: 9.07857
noise 4: 9.9285
noise 5: 10.3688
noise 6: 9.75621
noise 7: 10.3259
noise 8: 10.4238
noise 9: 10.2391

Overloaded function.

  1. __init__(self: visp._visp.core.GaussRand) -> None

Default noise generator constructor.

  1. __init__(self: visp._visp.core.GaussRand, sigma_val: float, mean_val: float, noise_seed: int = 0) -> None

Gaussian noise random generator constructor.

Parameters:
sigma_val

Standard deviation.

mean_val

Mean value.

noise_seed

Seed of the noise

Methods

__init__

Overloaded function.

seed

Set the seed of the noise.

setSigmaMean

Set the standard deviation and mean for gaussian noise.

Inherited Methods

Operators

__doc__

__init__

Overloaded function.

__module__

Attributes

__annotations__

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: visp._visp.core.GaussRand) -> None

Default noise generator constructor.

  1. __init__(self: visp._visp.core.GaussRand, sigma_val: float, mean_val: float, noise_seed: int = 0) -> None

Gaussian noise random generator constructor.

Parameters:
sigma_val

Standard deviation.

mean_val

Mean value.

noise_seed

Seed of the noise

seed(self, seed_val: int) None

Set the seed of the noise.

Parameters:
seed_val: int

New seed.

setSigmaMean(self, sigma_val: float, mean_val: float) None

Set the standard deviation and mean for gaussian noise.

Parameters:
sigma_val: float

New standard deviation sigma.

mean_val: float

New mean value.