Where do the lens-distortion models of matchmove and compositing tools (Nuke, SynthEyes, OpenCV, Blender/libmv, COLMAP, 3DE, OpenTrackIO) disagree, and what parameters must travel with a shot for the distortion to be reproduced?
Reading pinned vendor docs and source, the models disagree in at least five ways: direction (Blender division applies x/(1+k r^2) from ideal normalised to image; Nuke Classic and COLMAP SIMPLE_DIVISION use the same form from distorted to ideal), the meaning of k4 (OpenCV: a rational denominator term; Blender Brown: an r^8 polynomial term), the roles of p1 and p2 (Blender Brown is swapped relative to OpenCV, COLMAP and Blender Polynomial, from code reading), the normalisation (OpenCV by z with focal in pixels; Nuke width/height/diagonal/maximum; Blender Nuke model by half the larger image side; OpenTrackIO offsets in mm), and pixel origin conventions. For the shot to be reproducible the record must carry model name, direction, coefficient order and units, normalisation, centre/offset, sensor size and resolution, focal length and the focus/zoom state; an STMap or projection screen is the model-free alternative with storage and precision costs. 3DEqualizer model equations were not read...
Structured fields
{
"citations": [
{
"url": "https://github.com/opencv/opencv/blob/fe38fc608f6acb8b68953438a62305d8318f4fcd/modules/calib3d/include/opencv2/calib3d.hpp",
"note": "see curator disposition"
},
{
"url": "https://github.com/blender/blender/blob/95476576989343cfe4ef3bfb81dee322ff7294a7/intern/libmv/libmv/simple_pipeline/distortion_models.h",
"note": "see curator disposition"
},
{
"url": "https://learn.foundry.com/nuke/content/reference_guide/transform_nodes/lensdistortion.html",
"note": "see curator disposition"
},
{
"url": "https://github.com/colmap/colmap/blob/526ff008d2762292daa6e9dc027d7f2bc1a4aa17/src/colmap/sensor/models/division.h",
"note": "see curator disposition"
},
{
"url": "https://github.com/colmap/colmap/blob/526ff008d2762292daa6e9dc027d7f2bc1a4aa17/src/colmap/sensor/models/opencv.h",
"note": "see curator disposition"
},
{
"url": "https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_models/",
"note": "see curator disposition"
},
{
"url": "https://github.com/SMPTE/ris-osvp-metadata-camdkit/blob/0362321d03721a07029329cfc6f9e1e47bfa2bdf/src/main/python/camdkit/lens_types.py",
"note": "see curator disposition"
},
{
"url": "https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_interchange_1/",
"note": "see curator disposition"
},
{
"url": "https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_interchange_2/",
"note": "see curator disposition"
},
{
"url": "https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_profiles/",
"note": "see curator disposition"
},
{
"url": "https://www.3dequalizer.com/?site=tech_docs&id=110216_01",
"note": "see curator disposition"
},
{
"url": "https://github.com/colmap/colmap/blob/526ff008d2762292daa6e9dc027d7f2bc1a4aa17/src/colmap/sensor/models.h",
"note": "see curator disposition"
},
{
"url": "https://github.com/blender/blender/blob/95476576989343cfe4ef3bfb81dee322ff7294a7/intern/libmv/libmv/simple_pipeline/distortion_models.cc",
"note": "see curator disposition"
},
{
"url": "https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_workflow/",
"note": "see curator disposition"
}
]
}Evidence claims
- [sourced_fact] Reading pinned vendor docs and source, the models disagree in at least five ways: direction (Blender division applies x/(1+k r^2) from ideal normalised to image; Nuke Classic and COLMAP SIMPLE_DIVISION use the same form from distorted to ideal), the meaning of k4 (OpenCV: a rational denominator term; Blender Brown: an r^8 polynomial term), the roles of p1 and p2 (Blender Brown is swapped relative to OpenCV, COLMAP and Blender Polynomial, from code reading), the normalisation (OpenCV by z with focal in pixels; Nuke width/height/diagonal/maximum; Blender Nuke model by half the larger image side; OpenTrackIO offsets in mm), and pixel origin conventions. For the shot to be reproducible the record must carry model name, direction, coefficient order and units, normalisation, centre/offset, sensor size and resolution, focal length and the focus/zoom state; an STMap or projection screen is the model-free alternative with storage and precision costs. 3DEqualizer model equations were not read (they sit in a 246 MB archive). · locator: see curator disposition source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_interchange_1
- cites → https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_interchange_2
- cites → https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_models
- cites → https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_distortion_profiles
- cites → https://borisfx.com/documentation/syntheyes/syntheyesum_files/lens_workflow
- cites → https://github.com/SMPTE/ris-osvp-metadata-camdkit/blob/0362321d03721a07029329cfc6f9e1e47bfa2bdf/src/main/python/camdkit/lens_types.py
- cites → https://github.com/blender/blender/blob/95476576989343cfe4ef3bfb81dee322ff7294a7/intern/libmv/libmv/simple_pipeline/distortion_models.cc
- cites → https://github.com/blender/blender/blob/95476576989343cfe4ef3bfb81dee322ff7294a7/intern/libmv/libmv/simple_pipeline/distortion_models.h
- cites → https://github.com/colmap/colmap/blob/526ff008d2762292daa6e9dc027d7f2bc1a4aa17/src/colmap/sensor/models.h
- cites → https://github.com/colmap/colmap/blob/526ff008d2762292daa6e9dc027d7f2bc1a4aa17/src/colmap/sensor/models/division.h
- cites → https://github.com/colmap/colmap/blob/526ff008d2762292daa6e9dc027d7f2bc1a4aa17/src/colmap/sensor/models/opencv.h
- cites → https://github.com/opencv/opencv/blob/fe38fc608f6acb8b68953438a62305d8318f4fcd/modules/calib3d/include/opencv2/calib3d.hpp
- cites → https://learn.foundry.com/nuke/content/reference_guide/transform_nodes/lensdistortion.html
- cites → https://www.3dequalizer.com/?id=110216_01&site=tech_docs