Hi everyone,
Adding an updated reference for anyone who comes across this older discussion while working on multi-camera surround-view or panoramic video stitching on embedded platforms.
The original questions about coordinate transformations, seam points, and mask generation are important parts of any stitching pipeline. In general, the process involves calibrating the cameras, mapping their images into a common coordinate space, identifying overlapping regions, and using masks to blend those regions into a continuous output.
For developers implementing a similar system today, it may also be worth looking into GPU-accelerated stitching integrated directly into a GStreamer pipeline, rather than building and optimizing every processing stage from scratch.
At RidgeRun, we've been working on this through our Video Stitcher 2.0 solution, which supports multi-camera panoramic stitching on embedded platforms including NXP i.MX95.
The implementation uses predefined camera calibration, geometric remapping, and mask-based blending, with GStreamer integration through rrstitcher and rrglstitcher. OpenGL acceleration is available on i.MX95.
We've documented the architecture, calibration workflow, GStreamer integration, examples, and performance measurements here:
https://developer.ridgerun.com/wiki/index.php/Video_Stitching_for_Embedded_Systems
While this doesn't explain the exact implementation of NXP's original getSeamPoints() and createMasks() functions, it may be a useful reference for developers exploring modern embedded surround-view and panoramic stitching implementations.
Hope this helps anyone working on a similar project.
Best regards