{"id":26480561,"url":"https://github.com/ug-cp/detloclcheck","last_synced_at":"2026-04-30T02:35:11.793Z","repository":{"id":282373881,"uuid":"947497938","full_name":"ug-cp/detloclcheck","owner":"ug-cp","description":"  This is a mirror of https://gitlab.com/ug-cp/detloclcheck  Detection and Localization of a Checkerboard calibration target containing L shape marker using template matching","archived":false,"fork":false,"pushed_at":"2025-08-19T08:13:00.000Z","size":247,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-05T00:41:40.069Z","etag":null,"topics":["calibration-target","camera-calibration","checkerboard","computer-vision","l-shaped-marker","marker-localization","opencv","template-matching"],"latest_commit_sha":null,"homepage":"https://ug-cp.gitlab.io/detloclcheck","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ug-cp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.LESSER.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-12T19:30:20.000Z","updated_at":"2025-07-16T17:24:21.000Z","dependencies_parsed_at":"2025-03-14T09:27:41.772Z","dependency_job_id":"999bca47-fe58-476a-a5bb-2a285ad4959e","html_url":"https://github.com/ug-cp/detloclcheck","commit_stats":null,"previous_names":["ug-cp/detloclcheck"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ug-cp/detloclcheck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ug-cp%2Fdetloclcheck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ug-cp%2Fdetloclcheck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ug-cp%2Fdetloclcheck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ug-cp%2Fdetloclcheck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ug-cp","download_url":"https://codeload.github.com/ug-cp/detloclcheck/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ug-cp%2Fdetloclcheck/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32331296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"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":["calibration-target","camera-calibration","checkerboard","computer-vision","l-shaped-marker","marker-localization","opencv","template-matching"],"created_at":"2025-03-20T02:35:27.302Z","updated_at":"2026-04-30T02:35:11.787Z","avatar_url":"https://github.com/ug-cp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\nauthor: Daniel Mohr\nlicense: LGPL-3.0-or-later\nhome: https://gitlab.com/ug-cp/detloclcheck\nmirror: https://github.com/ug-cp/detloclcheck\ndocumentation: https://ug-cp.gitlab.io/detloclcheck\nlatest_release: https://gitlab.com/ug-cp/detloclcheck/-/releases/permalink/latest\ndoi: https://doi.org/10.5281/zenodo.15002509\n---\n\n# DetLocLCheck -- Detection, Localization, Checkerboard, L marker\n\n## intro\n\n`DetLocLCheck` is a software tool designed for the Detection and Localization\nof Checkerboard calibration targets containing L-shape markers.\nThis tool utilizes template matching for initial detection,\nfollowed by refinement using OpenCV's\n[`cornerSubPix`](https://docs.opencv.org/4.x/dd/d1a/group__imgproc__feature.html#ga354e0d7c86d0d9da75de9b9701a9a87e)\nfunction to achieve subpixel accuracy.\nFinally, world coordinates are assigned to the detected markers.\n\n![Example image of a checkerboard calibration target containing L-shape marker](checkerboard_example_image.png)\n\n## install\n\nBefore installing `DetLocLCheck`, ensure that the required dependencies\nare met:\n\nWe need at least the following Debian packages:\n\n* `python3-numpy` ([numpy.org](https://numpy.org/))\n* `python3-opencv` ([opencv.org](https://opencv.org))\n* `python3-pip` ([pip.pypa.io](https://pip.pypa.io/))\n\nImportant: On Ubuntu 22.04, do not install `python3-hatchling` and\n`python3-pathspec` as they are too old.\n\nNote that `numpy` is defined as a dependency in `pyproject.toml`, but we\nstrongly recommend using the package from your operating system's package\nmanagement system.\n\nSimilarly, `opencv-python` is not defined as a dependency in `pyproject.toml`.\nThe reason is that `pip` ignores the package from the package management\nsystem from the operating system. As before we strongly recommend to use\nthe package from the package management system of your operating system.\n\nIf you still want to install `opencv-python` using pip, use the following\ncommand (not recommended!):\n\n```sh\npip3 install opencv-python\n```\n\nThe recommended way to install `DetLocLCheck` is:\n\n```sh\npip3 install --break-system-packages --user https://gitlab.com/ug-cp/detloclcheck/-/archive/0.1.2/detloclcheck-0.1.2.zip\n```\n\nOn Ubuntu 22.04 the new flag `--break-system-packages` is not available and\nyou should do:\n\n```sh\npip3 install --user https://gitlab.com/ug-cp/detloclcheck/-/archive/0.1.2/detloclcheck-0.1.2.zip\n```\n\nFor development you could install an editable version, e. g.:\n\n```sh\npip3 install --break-system-packages -e https://gitlab.com/ug-cp/detloclcheck/-/archive/0.1.2/detloclcheck-0.1.2.zip\n```\n\nThis method only works with Python 3.10 and later.\n\nIf you really want to use the latest packages via `pip` you can do:\n\n```sh\npython3 -m venv --upgrade-deps \"$HOME\"/.venv_DetLocLCheck\n. \"$HOME\"/.venv_DetLocLCheck/bin/activate\npip3 install --user \"DetLocLCheck[opencv-python] @ git+https://gitlab.com/ug-cp/detloclcheck.git\"\n```\n\nOr for the headless version of opencv:\n\n```sh\npip3 install --user \"DetLocLCheck[opencv-python-headless] @ git+https://gitlab.com/ug-cp/detloclcheck.git\"\n```\n\n## Example\n\nHere are some examples of using `DetLocLCheck`:\n\nFind and detect checkerboards in multiple images and handle the images in parallel:\n\n```sh\ndetloclcheck find_checkerboard -log_file cam.log -run_parallel \\\n    -crosssizes 35 55 -min_sharpness 25 50 100 -f *.png\n```\n\nCreate example data, do the detection, and visualize the result:\n\n```sh\ndetloclcheck create_checkerboard_image -outfile foo.png -size 23\ndetloclcheck find_checkerboard -f foo.png\ndetloclcheck visualize foo.json -i foo.png\n```\n\n![Example image of the result of detloclcheck visualize](foo_visualized.png)\n\nYou can also use the Python module `detloclcheck` instead of the\ncommand-line interface:\n\n```py\nimport cv2\n\nimport matplotlib.pyplot\n\nfrom detloclcheck.detect_localize_checkerboard import \\\n    detect_localize_checkerboard\n\nimage_name = 'foo.png'\ngray_image = cv2.imread(image_name, cv2.COLOR_BGR2GRAY)\ncoordinate_system, zeropoint, axis1, axis2 = \\\n    detect_localize_checkerboard(\n        gray_image, (11, 23),\n        (0.0,  22.5,  45.0,  67.5,  90.0, 112.5, 135.0, 157.5))\nmatplotlib.pyplot.imshow(gray_image, cmap=\"Greys\")\nmatplotlib.pyplot.plot(\n    coordinate_system[:, 0, 0], coordinate_system[:, 0, 1],\n    'r2', markersize=20)\nmatplotlib.pyplot.plot(zeropoint[0], zeropoint[1], 'b1', markersize=20)\nfor i in range(coordinate_system.shape[0]):\n    matplotlib.pyplot.text(\n        coordinate_system[i, 0, 0], coordinate_system[i, 0, 1],\n        f'({int(coordinate_system[i, 1, 0])},'\n        f'{int(coordinate_system[i, 1, 1])})',\n        color='g', fontsize='small', rotation=45)\nmatplotlib.pyplot.show()\n```\n\n## Citation\n\nIf you are using detloclcheck, please make it clear by citing:\n\nMohr, D. (2025). DetLocLCheck. Zenodo. https://doi.org/10.5281/zenodo.15002509\n\nIf you are using a specific version, please use the corresponding DOI.\n\n## copyright + license\n\nAuthor: Daniel Mohr.\n\nDate: 2025-07-16 (last change).\n\nLicense: LGPL-3.0-or-later\n\nCopyright (C) 2024-2025 Daniel Mohr\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fug-cp%2Fdetloclcheck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fug-cp%2Fdetloclcheck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fug-cp%2Fdetloclcheck/lists"}