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 πŸ‘‘


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