{"id":18764509,"url":"https://github.com/staghado/fourier-draw","last_synced_at":"2025-09-17T19:31:13.588Z","repository":{"id":153185655,"uuid":"524723834","full_name":"staghado/fourier-draw","owner":"staghado","description":"Draw any shape from an image by Fourier transform using only Matplotlib.","archived":false,"fork":false,"pushed_at":"2023-12-02T18:17:38.000Z","size":25070,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T22:23:09.092Z","etag":null,"topics":["fourier-transform","matplotlib-animation","python3"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/staghado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-08-14T16:30:54.000Z","updated_at":"2024-10-10T03:18:11.000Z","dependencies_parsed_at":"2023-12-02T19:36:58.554Z","dependency_job_id":null,"html_url":"https://github.com/staghado/fourier-draw","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/staghado/fourier-draw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staghado%2Ffourier-draw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staghado%2Ffourier-draw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staghado%2Ffourier-draw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staghado%2Ffourier-draw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/staghado","download_url":"https://codeload.github.com/staghado/fourier-draw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staghado%2Ffourier-draw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275649822,"owners_count":25503212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fourier-transform","matplotlib-animation","python3"],"created_at":"2024-11-07T18:30:04.747Z","updated_at":"2025-09-17T19:31:11.920Z","avatar_url":"https://github.com/staghado.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fourier-draw\n\nImplementation of a technique allowing to draw the contour of any image using the Fourier transform.\n\n# How to use it ?\n\nusage: \n\\\n- **fourier-draw.py [-h] -i INPUT -o OUTPUT [-f FRAMES] [-N N]**\n\narguments:\n```console\n  -h, --help            show this help message and exit\n  -i INPUT, --input INPUT\n                        input image path\n  -o OUTPUT, --output OUTPUT\n                        output animation path\n  -f FRAMES, --frames FRAMES\n                        number of frames\n  -N N, --N N           number of coefficients used\n```\n\n# Example\n\n* Input image : \n\n\u003cimg src=\"images/raccoon_rock_n_roll.jpg\" width=\"400\" height=\"400\" /\u003e\n\n* Output animation :\n\n\u003cimg src=\"animations/raccoon_epicycles_otsu.gif\" width=\"800\" height=\"800\" /\u003e\n\n\n# Improvements :\n\nAfter the extraction of the contours, I only take the largest one for simplicity. But if we wanted to reproduce more fine-grained details\none would need to use all the available contours. In order to do that, we could simply stack all the contours into one big contour but that does not work pretty well since the naive stacking of contours adds more lines which make the final animation cumbersome.\n\nWe would like to connect the contours so as to minimize the intersection between the lines.\n\n# Reference : \n- https://www.youtube.com/watch?v=r6sGWTCMz2k : But what is a Fourier series? From thermal transfer to designs with circles\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaghado%2Ffourier-draw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstaghado%2Ffourier-draw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaghado%2Ffourier-draw/lists"}