I currently working on an optical respiratory monitor and one of the challenges was image alignment/registration for an optical and a thermal image with wildly different resolutions, fovs. 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…
Accurate Image Alignment and Registration Using OpenCV
21–30 of 35 posts
Re: Accurate Image Alignment and Registration Using OpenCV
#22The biggest issue in real life use cases is lens distortion - these alignment algorithms usually don't correct barrel, pin-cushion or more complex lens distortions, making the alignment imperfect.
Sometimes it's better to match first, then undistort, though.
Re: Accurate Image Alignment and Registration Using OpenCV
#23Python implementation: https://pypi.org/project/pystackreg/
Re: Accurate Image Alignment and Registration Using OpenCV
#24Re: Accurate Image Alignment and Registration Using OpenCV
#25Earlier quoted context omitted.
This is called drizzle (with dithering, e.g. the raw photos are taken with offsets) in the astrophotography sphere and is very effective when the images are undersampled. Although, astronomy images have the advantage of being filled with stars that are relatively easy to align very accurately.
I imagine the minuscule vibrations of a shutter make it a natural fit to the already existing image stacking pipeline, correct?
Re: Accurate Image Alignment and Registration Using OpenCV
#26Earlier quoted context omitted.
I imagine the minuscule vibrations of a shutter make it a natural fit to the already existing image stacking pipeline, correct?
Yes, I believe Google's team publicly says it helps add just enough random translation.
Re: Accurate Image Alignment and Registration Using OpenCV
#27Image alignment allows for some fun image manipulations like these. I think one of the coolest novel applications of image alignment in recent years must be multi-frame super-resolution. For example, the Pixel phones use it to improve low-light and zoomed in photos[0]. [0] https://sites.google.com/view/handheld-super-res/
I wonder if you could use alignment of multiple samples for better vectorizing of letters of old books. You could create very nice vector only pdfs.
Vectorization is nontrivial. Most academic journal articles are now poorly scanned, and it would be nice to simply improve the scans.
Re: Accurate Image Alignment and Registration Using OpenCV
#28I currently working on an optical respiratory monitor and one of the challenges was image alignment/registration for an optical and a thermal image with wildly different resolutions, fovs. 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…
Direct methods could be useful in your case. https://pages.cs.wisc.edu/~dyer/ai-qual/irani-visalg00.pdf
https://kornia-tutorials.readthedocs.io/en/latest/image_regi...
Re: Accurate Image Alignment and Registration Using OpenCV
#29Earlier quoted context omitted.
Direct methods could be useful in your case. https://pages.cs.wisc.edu/~dyer/ai-qual/irani-visalg00.pdf
At work I had to make a custom image registration pipeline, that uses only 2 degrees of freedom, so just x,y translation. OpenCV did not have anything that did this, but a python library called Kornia does this well. https://kornia-tutorials.readthedocs.io/en/latest/image_regi...
Re: Accurate Image Alignment and Registration Using OpenCV
#30I currently working on an optical respiratory monitor and one of the challenges was image alignment/registration for an optical and a thermal image with wildly different resolutions, fovs. 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…
Maybe you could use this for when there are "enough" features, and keep using the manual method for the remaining situations. I'd have to take a look at the images to have a better idea of what you are dealing with.
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.