black@beno.CSS.GOV (Mike Black) (07/18/90)
I'm in need of an algorithm to undo the effect of a 90 degree field of view lens. I tried a dual-axis third order polynomial fit and it didn't handle the corners very well. Has anyone got some helpful material on this? Mike... -- ------------------------------------------------------------------------------- : usenet: black@beno.CSS.GOV : land line: 407-494-5853 : I want a computer: : real home: Melbourne, FL : home line: 407-242-8619 : that does it all!: -------------------------------------------------------------------------------
dave@imax.com (Dave Martindale) (07/18/90)
In article <48999@seismo.CSS.GOV> black@beno.CSS.GOV (Mike Black) writes: >I'm in need of an algorithm to undo the effect of a 90 degree field of view >lens. I tried a dual-axis third order polynomial fit and it didn't handle >the corners very well. First, you have to know the distortion characteristics of the lens. Designers *try* to build lenses with minimal distortion, even if the field of view is 90 degrees, so the distortion that remains is one of the compromises that had to be accepted to get something else in the design. Thus, every design of a wide-angle lens will have different distortion characteristics. Or was this lens designed as a fisheye? Anyway, once you know what the distortion you are trying to correct looks like, you can see how well various polynomials (or other functions) will fit the curve.
black@beno.CSS.GOV (Mike Black) (07/21/90)
In article <1990Jul18.162340.12905@imax.com> dave@imax.com (Dave Martindale) writes: >In article <48999@seismo.CSS.GOV> black@beno.CSS.GOV (Mike Black) writes: >>I'm in need of an algorithm to undo the effect of a 90 degree field of view >>lens. I tried a dual-axis third order polynomial fit and it didn't handle >>the corners very well. > >First, you have to know the distortion characteristics of the lens. >Designers *try* to build lenses with minimal distortion, even if the >field of view is 90 degrees, so the distortion that remains is one >of the compromises that had to be accepted to get something else in >the design. Thus, every design of a wide-angle lens will have >different distortion characteristics. > >Or was this lens designed as a fisheye? > >Anyway, once you know what the distortion you are trying to correct >looks like, you can see how well various polynomials (or other functions) >will fit the curve. I maintain that you don't need to know a thing about the lens. I've taken an evenly spaced grid and pulled off x,y locations of where the points are. I've found that a 3rd order polynomial fits quite well in both axis. I've got two problems now: 1. I've found that the centroid of the fit changes based on which vertical or horizontal scan line I references (it looks like another parabolic function). 2. I'm still a little fuzzy on how to figure out that: x',y' = f(x,y) Using the target image coordinates. In other words, I want to iterate from x=0 to 511, y=0 to 511 and figure out where the distorted pixel is and put it in a non-distorted buffer. This will assure image fill. I figure that I will have to change to polar coordinates and then back again. I'm having problems finding out where the center of the field of view is so I can compute the polar coordinates from that point. I need to be extremely accurate and need to be able to prove the method. -- ------------------------------------------------------------------------------- : usenet: black@beno.CSS.GOV : land line: 407-494-5853 : I want a computer: : real home: Melbourne, FL : home line: 407-242-8619 : that does it all!: -------------------------------------------------------------------------------