cameracalibrations.jl
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: yakir12
- License: mit
- Language: Julia
- Default Branch: main
- Size: 1.02 MB
Statistics
- Stars: 9
- Watchers: 4
- Forks: 2
- Open Issues: 0
- Releases: 13
Metadata Files
README.md
CameraCalibrations
This is a package for camera calibration in Julia.
How to install
julia
] add CameraCalibrations
How to use
Using files
First we build the calibration object based on the files: the image files of the checkerboard, n_corners: the number of inner corners in each of the sides of the checkerboard, and checker_size: the physical size of the checker (e.g. in cm).
julia
using CameraCalibrations
c, ϵ = fit(files, n_corners, checker_size)
Then we can use that object to calibrate pixel coordinates and/or images, given the extrinsic image we want to refer to:
julia
i1 = RowCol(1.2, 3.4) # a cartesian index in image-pixel coordinates
xyz = c(i1, 1) # convert to real-world coordinates of the first image
i2 = c(xyz, 1) # convert back to pixel coordinates
i2 ≈ i1 # true
The error term, ϵ, includes the reprojection, projection, distance, and inverse errors for the calibration. distance measures the mean error of the distance between all adjacent checkerboard corners from the expected checker_size. inverse measures the mean error of applying the calibration's transformation and its inverse 100 times.
Using im-memory images
The syntax for in-memory images is very similar to that of files. The difference is that here we must specify "tags" (a name in the form of a string) for each of the images. Because corner detection can fail in one or more of the images (due to occlusion, low image quality, etc), it can be important for the user to know which of the images failed. Thsi becomes important if say one of the images that failed was the one you had hoped to use for the extrinsic parameters. The images must also be gray-scale.
julia
fit(tags::Vector{T}, imgs::Vector{Matrix{S}}, n_corners, checker_size) where {T <: AbstractString, S <: Gray}
Additional arguments
aspect: Specifies the aspect ratio of the images. Defaults to1.with_distortion: Include lens distortion in the model. This can be useful to exclude if the resulting camera model results in "donut artifacts" (where the projected coordinates wrap back on themselves at the periphery of the image). Defaults totrue.plot_folder: Save the rectified calibration images with a red cross on each detected checkerboard corner and a blue one for the reprojected one. This is useful for assessing the quality of the calibration: the checkerboards should look square and the centers of the red and blue crosses should overlap.
Features
- [x] thread safe
- [x] saving and loading (JSON) calibration files
- [x] corner detection is done with opencv
- [x] model fitting is done with opencv
- [x] opencv is python-free, via
OpenCV.jl - [x] plot calibrated images
- [x] allows for calibration images that were saved with an aspect ration ≠ 1
- [x] in-memory images
Citing
See CITATION.bib for the relevant reference(s).
Owner
- Name: Yakir Luc Gagnon
- Login: yakir12
- Kind: user
- Location: Malmö Sweden
- Company: Lund University
- Website: https://datasturgeon.com/
- Twitter: YakirGagnon
- Repositories: 173
- Profile: https://github.com/yakir12
Citation (CITATION.bib)
@misc{CameraCalibrations.jl,
author = {Yakir Gagnon <12.yakir@gmail.com> and contributors},
title = {CameraCalibrations.jl},
url = {https://github.com/yakir12/CameraCalibrations.jl},
version = {v1.0.0-DEV},
year = {2024},
month = {12}
}
GitHub Events
Total
- Create event: 6
- Commit comment event: 4
- Release event: 2
- Issues event: 3
- Delete event: 4
- Issue comment event: 7
- Push event: 50
- Pull request event: 3
- Fork event: 1
Last Year
- Create event: 6
- Commit comment event: 4
- Release event: 2
- Issues event: 3
- Delete event: 4
- Issue comment event: 7
- Push event: 50
- Pull request event: 3
- Fork event: 1
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 2
- Total pull requests: 3
- Average time to close issues: 3 days
- Average time to close pull requests: 1 day
- Total issue authors: 1
- Total pull request authors: 2
- Average comments per issue: 1.0
- Average comments per pull request: 0.33
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 1
Past Year
- Issues: 2
- Pull requests: 3
- Average time to close issues: 3 days
- Average time to close pull requests: 1 day
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 1.0
- Average comments per pull request: 0.33
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 1
Top Authors
Issue Authors
- yakir12 (2)
Pull Request Authors
- dependabot[bot] (2)
- yakir12 (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 1 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 13
juliahub.com: CameraCalibrations
- Documentation: https://docs.juliahub.com/General/CameraCalibrations/stable/
- License: MIT
-
Latest release: 0.9.1
published 11 months ago
Rankings
Dependencies
- JuliaRegistries/TagBot v1 composite