{"id":15551272,"url":"https://github.com/seatonullberg/grains","last_synced_at":"2025-04-23T20:46:33.769Z","repository":{"id":57435731,"uuid":"171410333","full_name":"seatonullberg/grains","owner":"seatonullberg","description":"Metallic and ceramic grain analysis made easy.","archived":false,"fork":false,"pushed_at":"2019-06-20T17:10:42.000Z","size":352,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-18T05:53:40.626Z","etag":null,"topics":["computer-vision","materials-science","opencv"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/seatonullberg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-19T05:22:30.000Z","updated_at":"2023-03-11T21:31:16.000Z","dependencies_parsed_at":"2022-08-27T10:50:57.717Z","dependency_job_id":null,"html_url":"https://github.com/seatonullberg/grains","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatonullberg%2Fgrains","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatonullberg%2Fgrains/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatonullberg%2Fgrains/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatonullberg%2Fgrains/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seatonullberg","download_url":"https://codeload.github.com/seatonullberg/grains/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250513395,"owners_count":21443201,"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":["computer-vision","materials-science","opencv"],"created_at":"2024-10-02T14:03:50.006Z","updated_at":"2025-04-23T20:46:33.750Z","avatar_url":"https://github.com/seatonullberg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# grains\n\n## Summary\n\n`grains` is a software package for tech savvy metallurgists and ceramists who\nare tired of counting grains by hand. The software reports information related\nto the size distribution of grains in a micrograph in both text and graphical\nformats. The goal of this project is to automate the process of grain analysis\nby applying modern computer vision algorithms.\n\n## Installation\n\n`grains` can be installed easily through the terminal via:\n\n    $ pip install grains\n\nTo install `grains` from source for development:\n\n    $ git clone https://github.com/seatonullberg/grains.git\n    $ cd grains\n    $ pip install -r requirements.txt\n    $ pip install -e .\n\n## Usage\n\nThe following example showcases the basic functionality of `grains` as a software library.\nPlease note that the image scale in this example is arbitrary as I have not yet found\nadequate validation data. Refer to the [examples](./examples) directory for\nthe simple source code used to generate these results.\n\nIf you are more interested in using `grains` as a CLI, the results of\nthis example can be replicated with the following command.\n\n    $ grains --h=\u003cimage height\u003e --w=\u003cimage width\u003e \u003cpath/to/image\u003e\n\n### Input Image\n\n![alt text](./examples/test_grains.jpg \"Input Image\")\n\n### Centroids Image - Default Settings\n\n![alt text](./examples/test_grains.centroids.png \"Centroids Image\")\n\n### Area Histogram - Default Settings\n\n![alt text](./examples/test_grains.histogram.png \"Area Histogram\")\n\n### Text Summarization - Default Settings\n\n    Automatically Generated by grains\n\n    Input filename: test_grains.jpg\n    Number of grains: 40\n    Grain area mean: 1631.55 um^2\n    Grain area variance: 1527136.86 um^2\n    Grain area standard deviation: 1235.77 um^2\n\n## Roadmap\n\n- ~~Grain counter with OpenCV~~\n\n- ~~Size distribution analysis~~\n\n- ~~Calculate average grain size in accordance with ASTM E112~~\n\n- ~~Wrap functionality into a simple CLI~~\n\n- ~~Package for pip install~~\n\n- Validate performance and construct test cases\n\n- Make official release on Github\n\n## Citation\n\nIf you use this software in a publication please cite me using the following\nBibTeX format.\n\n    @Misc{,\n        author = {R. Seaton Ullberg},\n        title = {{grains}: Automatic Grain Analysis Tool},\n        year = {2019--},\n        url = \"https://github.com/seatonullberg/grains\",\n        note = {[Online; accessed \u003ctoday\u003e]}\n    }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseatonullberg%2Fgrains","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseatonullberg%2Fgrains","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseatonullberg%2Fgrains/lists"}