Accurate Image Alignment and Registration Using OpenCV
magamig.github.io
magamig.github.io
3.76um pixels + 800mm focal length is about 1 arcsecond per pixel, so that will end up seeing limited much of the time.
Also, drizzling was developed originally for the Hubble Deep Field, which isn't limited by seeing :).
Vectorization is nontrivial. Most academic journal articles are now poorly scanned, and it would be nice to simply improve the scans.
We ended up doing this by manually calibrating the images in matlab using a custom script and logging out a transformation matrix that we could then multiply the optical image by to get matching pixels in the thermal image.
Really fun project, but definitely a tedious thing to do, especially when its only a small part of the overall project. The project in the link also looks very cool, just not quite right for us as we probably wouldnt consistently have enough landmarks to map.
https://kornia-tutorials.readthedocs.io/en/latest/image_regi...
It can do dense translation, translation + rotation, Affine, and Homography alignment; I've used it in the past to do sub-pixel Aruco/AprilTag alignment (and I'd probably also use it for astrophotography).
A bigger issue is that the project is running on a Pi, so just getting the image alignment running along with our face detection wouldve also been a pretty tall task if we want to stay at around ~5fps.
Python implementation: https://pypi.org/project/pystackreg/
Sometimes it's better to match first, then undistort, though.