• Andrey Filippov's avatar
    CLAUDE: Add nadir_undistort parameter — rectilinear nadir images for COLMAP PINHOLE · 09d21774
    Andrey Filippov authored
    Add nadir_undistort (boolean, default true) to IntersceneMatchParameters
    at all 6 required locations (field, dialog, read, save, load, clone).
    
    When enabled, renderNadirSequence() undistorts the pX,pY coordinates of
    each scene's nadir disparity map before calling renderGPUFromDSI(), so the
    rendered NADIR-MERGED TIFF images are rectilinear (pinhole projection)
    rather than retaining the sensor's native radial distortion.
    
    Analysis of the Boson 640 calibration (lwir16-06-72-00.calib-tiff) showed:
    - True distortion polynomial terms: < 1 px magnitude across the full image
    - The dominant issue was d = K0 = 1.00997 (a ~1% focal-length constant offset)
      which, when modeled as PINHOLE with the nominal focal length, curves the
      ground plane into the 'Little Prince planet' sphere effect seen in Blender
    - With nadir_undistort=true, COLMAP can use a pure PINHOLE model with the
      correct effective focal length (f * d = 1121.8 px instead of 1110.8 px)
    
    The undistortPxPy() helper mirrors getWorldCoordinates() in GeometryCorrection:
      rD_mm = ||(pX-cx, pY-cy)|| * pixelSize_mm
      factor = getRByRDist(rD_mm / distortionRadius)
      pX_rect = (pX - cx) * factor + cx
    Co-authored-by: 's avatarClaude <claude@elphel.com>
    09d21774
IntersceneMatchParameters.java 715 KB