3.76um pixels + 800mm focal length is about 1 arcsecond per pixel, so that will end up seeing limited much of the time.
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...
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.