{"id":21165979,"url":"https://github.com/peterdee/go-fast","last_synced_at":"2025-06-27T00:06:20.680Z","repository":{"id":177011518,"uuid":"656327661","full_name":"peterdee/go-fast","owner":"peterdee","description":"FAST corner detector implementation","archived":false,"fork":false,"pushed_at":"2023-07-18T11:08:13.000Z","size":1828,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"release","last_synced_at":"2025-03-14T16:49:10.403Z","etag":null,"topics":["corner-detection","fast","fast-detector","go","golang","nms","non-maximum-suppression"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peterdee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-20T18:12:03.000Z","updated_at":"2023-07-13T07:34:04.000Z","dependencies_parsed_at":"2025-01-21T10:10:36.231Z","dependency_job_id":"260b1f84-e978-4f4e-9d7c-b3b08da4c035","html_url":"https://github.com/peterdee/go-fast","commit_stats":null,"previous_names":["peterdee/go-fast"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/peterdee/go-fast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-fast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-fast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-fast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-fast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterdee","download_url":"https://codeload.github.com/peterdee/go-fast/tar.gz/refs/heads/release","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterdee%2Fgo-fast/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262164064,"owners_count":23268781,"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","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":["corner-detection","fast","fast-detector","go","golang","nms","non-maximum-suppression"],"created_at":"2024-11-20T14:47:48.984Z","updated_at":"2025-06-27T00:06:20.636Z","avatar_url":"https://github.com/peterdee.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## go-fast\n\nFAST corner detector implementation with Golang\n\n### Deploy\n\n```shell script\ngit clone https://github.com/peterdee/go-fast\ncd ./go-fast\nmkdir samples\nmkdir results\ngvm use 1.20\n```\n\n### Launch\n\nModify `main.go` file\n\n```go\n// point radius (used for NMS clustering)\nconst RADIUS int = 15\n\n// path to image file\nconst SAMPLE string = \"samples/image.png\"\n\n// if result should be saved as grayscale\nconst SAVE_GRAYSCALE bool = false\n\n// threshold for corner point determination\nconst THRESHOLD uint8 = 150\n```\n\nRun the code\n\n```go\ngo run ./\n```\n\nOutput file will be placed in `results` directory\n\n### Non Maximum Suppression\n\nNMS is based on https://github.com/peterdee/js-nms with slight modifications.\n\nNMS is used to group points into clusters based on `RADIUS` distance, and then the point with highest intensity difference is selected.\n\nCurrent NMS implementation has some limitations: it's possible that several points are going to found within the `RADIUS` distance (this is an edge case when selected points are located at the edge of the cluster). It is possible to resolve this issue with more iterations over NMS results, but this can affect the performance.\n\n### Examples\n\n#### Image 1\n\nOriginal image\n\n![original](./examples/1.jpg)\n\nProcessed with the following settings\n\n```go\nconst RADIUS int = 25\nconst SAVE_GRAYSCALE bool = true\nconst THRESHOLD uint8 = 70\n```\n\n![original](./examples/1-processed.jpeg)\n\n#### Image 2\n\nOriginal image\n\n![original](./examples/2.jpg)\n\nProcessed with the following settings\n\n```go\nconst RADIUS int = 15\nconst SAVE_GRAYSCALE bool = true\nconst THRESHOLD uint8 = 90\n```\n\n![original](./examples/2-processed.jpeg)\n\n### License\n\n[MIT](LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterdee%2Fgo-fast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterdee%2Fgo-fast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterdee%2Fgo-fast/lists"}