{"id":21980179,"url":"https://github.com/innolitics/10x-localization","last_synced_at":"2025-09-02T12:48:09.219Z","repository":{"id":70507782,"uuid":"127492257","full_name":"innolitics/10x-localization","owner":"innolitics","description":null,"archived":false,"fork":false,"pushed_at":"2018-05-09T19:56:55.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-06-11T09:56:57.040Z","etag":null,"topics":["image-processing","imaging","localization","microscopy","noise"],"latest_commit_sha":null,"homepage":null,"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/innolitics.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-31T02:35:03.000Z","updated_at":"2018-05-09T18:41:54.000Z","dependencies_parsed_at":"2023-03-05T22:30:45.349Z","dependency_job_id":null,"html_url":"https://github.com/innolitics/10x-localization","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/innolitics/10x-localization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innolitics%2F10x-localization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innolitics%2F10x-localization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innolitics%2F10x-localization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innolitics%2F10x-localization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/innolitics","download_url":"https://codeload.github.com/innolitics/10x-localization/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innolitics%2F10x-localization/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273287604,"owners_count":25078570,"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-02T02:00:09.530Z","response_time":77,"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":["image-processing","imaging","localization","microscopy","noise"],"created_at":"2024-11-29T17:09:52.356Z","updated_at":"2025-09-02T12:48:09.158Z","avatar_url":"https://github.com/innolitics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 10x Localization Project\n\nThis repository contains code developed as one of [Innolitic's](http://innolitics.com) [10x mini-projects](http://innolitics.com/10x/discussions/).\n\n## Introduction\n\n- problem has shown up on multiple client projects\n- sensors; integration vs sampling\n- background\n- noise\n- relative size of the object\n\nProblem: find the location of the object (usually a fiducial used for image registration) as accurately as possible.\n\n## Formalized 1D Problem\n\nWe mode the underlying object that we are imaging as a continuous, 1D function over the domain [0, 100].\n\nThis function has the form:\n\n```\nI(x) = rect((x - c)/w) + b(x)\n```\n\nWhere\n\n- `c` = \"Center of the object\"\n- `w` = \"Width of the object\n- `b(x)` = \"Background function\".\n\nFor now, we assume that the background function is linear, that is:\n\n```\nI(x) = rect((x - c)/w) + b0 + x*b1\n```\n\nNow that we have modeled the underlying object, we need to model the processing of converting this object into a image.\n\nAssume an image of this object is formed using an imager with 100 sensor elements.  For now we assume that each sensor element acts as a perfect integrator.  I.e.,\n\n```\nI_integrated[k] = \\int_k^{k+1} I(x) dx\n```\n\nfor `k` = 0 to 99.\n\nIn the other extreme, each sensor element acts as a perfect sampler.  I.e.,\n\n```\nI_sampled[k] = I(k + 0.5) * alpha\n```\n\nwhere alpha is an arbitrary constant.\n\nIn practice, one would expect image sensors to be a combination.  If `s` is a number between 0 and 1, representing how full the image sensor is:\n\n```\nI_b[k] = \\int_{k + s/2}^{k + 1 - s/2} I(x) dx\n```\n\nThe bit-depth of the Analog to Digital converter also plays a roll in image formation.\n\nFinally, we expect a certain amount of noise to be introduced by the sensor, readout machinery, etc.  For now, we assume that all of the noise is zero-mean Gaussian noise (this is certainly not the case).\n\nFor now, we model these effects using:\n\n- `N` = \"number of gray scale levels available in our sensor's analog to digital converter\"\n- `A_max` = \"maximum measurable value\"\n- `A_min` = \"minimum measurable value\"\n- `s` = \"relative size of the sensor elements, [0, 1]\"\n- `sigma` = \"standard deviation of the gaussian noise\".\n\n## Problem\n\nWe are interested in developing an algorithm that can determine object's center, `c`, as accurately as possible given an `I[k]`.\n\nWe know `N`, `A_min`, `A_max`, and `s` before hand, since they are attributes of the imaging system.  We may also know the approximate ranges that the image `w`, `b0`, `b1`, and `sigma` will take.\n\nWe can also assume that `c` is in the middle of the image, i.e., `c \\in [25, 75]`.\n\nIf our algorithm guesses `c_expected`, then we define the localization error to be:\n\n```\nE = |c - c_expected|\n```\n\n## Questions to investigate\n\n- What algorithm have the lowest mean localization error?\n- For a given algorithm, what is the relationship between mean localization error an `X`?  (where `X` is a paramater of our model, such as `w`, `N`, `b0`, `b1`, `s`, or `sigma`).\n- Generalize to 2D\n- Investigate the effect of different types of background functions\n\n## References\n\n- [Wikipedia article about super-resolution imaging](https://en.wikipedia.org/wiki/Super-resolution_imaging)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnolitics%2F10x-localization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finnolitics%2F10x-localization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnolitics%2F10x-localization/lists"}