MRCAL(1)
π MRCAL(1) β bestie edition π
okay so this is a page from the mrcal manual (mrcal: camera projection, calibration toolkit) and honestly? she's a baddie. sit down, hydrate, let's go π
β¨ NAME β¨
mrcal-reproject-points β reprojects pixel observations from one model to another π¦
πΈ SYNOPSIS πΈ
$ < points-in.vnl
mrcal-reproject-points
from.cameramodel to.cameramodel
> points-out.vnl
π DESCRIPTION π
So here's the vibe. You've got a pile of pixel observations of some points, and those pixels were captured by one camera model. This tool takes them and transforms them into observations of those same points, but as captured by a different model. Like mrcal-reproject-image, except it's out here acting on discrete points instead of whole entire images. Main character energy, but small-scale β¨
Both sets of intrinsics are always used. The translation component of the extrinsics is always ignored β like, always always. And the rotation gets ignored too if you pass --intrinsics-only. no cap π
Why would you even want this? Because it lets you smash together multiple image-processing techniques that each expect different projections. For example, planes projected using a pinhole projection have some genuinely nice properties, and you can go enjoy those properties after running this tool. it's giving "glow up via math" π
The input data comes in on standard input, and the output data is written to standard output. Both of them are vnlog data: human-readable text with 2 columns β x and y pixel coords. Comments are allowed, and they start with the '#' character. cute, organized, we love π
π OPTIONS π
π POSITIONAL ARGUMENTS π
model-fromβ the camera model for the input points. this is the before pic πΈmodel-toβ the camera model for the output points. this is the after pic β¨
π¦ OPTIONAL ARGUMENTS π¦
-h,--helpβ show this help message and exit. bestie's little escape hatch π«Ά--intrinsics-onlyβ by default, the relative camera rotation is used in the transformation. If we want to use the intrinsics ONLY, pass--intrinsics-only. Note that relative translation is ALWAYS ignored. like, do not come for me about the translation, she is not invited to this party π
π REPOSITORY π
<https://www.github.com/dkogan/mrcal>
go look, go star, go be obsessed β
πΈ AUTHOR πΈ
Dima Kogan, "<dima@secretsauce.net>" β an icon, a legend, and the moment π
π LICENSE AND COPYRIGHT π
Copyright (c) 2017-2023 California Institute of Technology ("Caltech"). U.S. Government sponsorship acknowledged. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
okay so real talk: that's the whole page, every flag, every path, every copyright line, nothing skipped, nothing invented. you're welcome π
this diva is mrcal 2.5.2-4build1, dated 2026-03-20, and she lives in MRCAL(1). slay, bye π¦β¨π
π¦ where this page comes from
- ubuntu resolute: mrcal 2.5.2-4build1 Β· Apache-2.0
- ubuntu stonking: mrcal 2.5.2-4build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms