# Synthetic Data Generator¶

The built in synthetic data generator allows for the creation of images containing objects with known velocities to test the image processing and tracking algorithms as well as deduce the limits of the techniques.

There are three methods of producing these images that can be selected from the Particle generator drop-down list:

1. gaussian - Seeds the centers of the object with colored pixels, then performs a gaussian blur using scipy.ndimage.filter.gaussian_filter
2. circle - Uses cv2.circle to draw circles at the object locations.
3. template - copies and blends selected *png files with transparency at the object locations.

A number of other parameters can be changed including:

1. The particle count can be changed using the Particle count spinner.
2. The particle radius in pixels can be changed by changing the from and to spinner values. The actual radius is randomly chosen from that range.
3. The particle intensity (the actual pixel values of the particle, 0-255) can be selected by changing the from and to spinner values. The actual intensity is randomly chosen from that range.
4. The particle velocities can be selected by changing the x from, x to, y from, and y to spinner values. As with the other ranges, the actual velocities will be randomly chosen from that range.
5. The particle acceleration can be selected by changing the x from, x to, y from, and y to spinner values. As with the other ranges,the actual velocities will be randomly chosen from that range.
6. The number of frames can be selected by entering a value in the Frames spinner.
7. The width and height, in pixels, can be changed by entering values in the Width and Height spinners.
8. The level of random noise can be changed by entering a value in the noise spinner. Noise is created by building a random array and adding to the frame ($$g(i,j) = f(i,j)+n(i,j)$$). Any resulting values greater than 255 are truncated to 255.
9. The wall interaction between the particle and the wall can be changed using the Walls drop-down list.
10. The restitution coefficient can be changed by using the restitution spinner

After the images have been tracked, when displaying the histogram on the post tab, both the measured and true synthetic distributions are plotted.