Draw a picture or sample one, press space, then watch an epic simulation of epicycles being drawned identically as your picture. Thanks the the fourier transform your drawing will be reproduced in a real-time simulation only using epicycles.
#Clone the repository
git clone https://github.com/MarcPartensky/Fourier.git
cd Fourier
#Install requirements
pip install -r requirements.txt
Put your model image image.png
in the FourierImages
folder.
python __main__.py image.png
python __main__.py
> image name:
Then give your image:
> image name:image.png
# Download the docker-compose.yml file and cd into its parent folder
# Put your image in the FourierImages folder then run
# Replace 'image.png' by your own image filename
docker-compose run --rm fourier image.png
Or choose your own folder
# Download the docker-compose.yml file and cd into its parent folder
# Replace the first occurence of 'FourierImages' by your custom image folder
# Replace 'image.png' by your own image too
docker-compose run --rm \
-v ./FourierImages:/opt/FourierImages \
fourier image.png
Or run the full docker command without the docker-compose.yml file
docker run --rm \
-v $PWD/image.jpg:./image.jpg \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--device /dev/dri \
-e DISPLAY \
marcpartensky/fourier /image.jpg
Or store the coefficients and the images in a folder
docker run --rm \
-v $PWD/FourierImages:/opt/FourierImages \
-v $PWD/FourierObjects:/opt/FourierObjects \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--device /dev/dri \
-e DISPLAY \
marcpartensky/fourier image.jpg
There are 3 modes in this program:
Mode 1: Sampling Sample or draw a picture.
Mode 2: Drawing Watch the epicycles simulation which uses fourier transform.
Mode 3: Display Get the output image directly without waiting for the simulation.
Space
: Switch to next mode.Enter
: Go back to the center.Up/Down/Right/Left Arrow
: Move arround.Right/Left Shift
: Zoom in or out.Quit/Escape
: Quit.Z
: Cancel last sample.R
: Remove all samples.S
: Save the fourier-coefficients.Press the following numbers to toggle:
1
: Image2
: Green lines3
: Red graph4
: White vectors5
: Grey circles6
: Yellow sample