How to design a Fisheye lens based on distortion curve
How to design a Fisheye lens based on distortion curve
(OP)
Hi Guys,
I've been racking my brain recently - I am trying to design a single fisheye lens (not multiple lenses) that will fisheye distort a scene. The scene must be distorted as per a given distortion curve I am in an industry that designs cameras and in a company that relies on a special Field of View software that at £100,000+ per license, is a limited and expensive resource. All they really use this software is to see what the camera would see.
My initial approach, having a fair bit of experience with CAD software and rendering was to create a convex/parabolic/polynomial shaped mirror, then set up a camera looking at this mirror in the scene. To validate this approach I want to take the raw image generated by the FOV software and overlay the image generated using my approach.
So far I have almost been successful - I created a parabolic mirror and the images match almost exactly. The problem is the "almost" bit is really bugging me. The parabolic mirror was created in CAD by creating a parabolic curve and rotating the sketch to create the solid, then applying a perfect mirror material and setting up a parallel camera with the same dimensions as the imager. I have found that the curve used to generate this mirror is not quite parabolic - so it would be a polynomial curve, so my question is how do I work out the polynomial equation which describes the curve which I rotate into a solid to create the mirror which distorts the scene given the following distortion polynomial:
The distortion curve I am using is as follows:
Y = 0.0001X2 + 0.0186X – 0.001
where Y is the image height (measured in any direction from the center of the imager) and X is the field angle.
The apex point is 1.22mm behind the front lens surface. Focal length is 1.17mm, lens is 190 degree fisheye.
So this gives me the distortion curve - field angle vs imager height but it doesnt describe the surface of the mirror.
My other approach was to actually create a lens in CAD and apply a glass material with the correct index of refraction but this also presents the same problem of the shape of the lens to give me the correct scene distortion, plus i'm getting into actual lens design which is a little bit beyond me at the moment - although if it works I'd be happy to do it this way.
Any help would be very apreciated!!
Thanks in advance
I've been racking my brain recently - I am trying to design a single fisheye lens (not multiple lenses) that will fisheye distort a scene. The scene must be distorted as per a given distortion curve I am in an industry that designs cameras and in a company that relies on a special Field of View software that at £100,000+ per license, is a limited and expensive resource. All they really use this software is to see what the camera would see.
My initial approach, having a fair bit of experience with CAD software and rendering was to create a convex/parabolic/polynomial shaped mirror, then set up a camera looking at this mirror in the scene. To validate this approach I want to take the raw image generated by the FOV software and overlay the image generated using my approach.
So far I have almost been successful - I created a parabolic mirror and the images match almost exactly. The problem is the "almost" bit is really bugging me. The parabolic mirror was created in CAD by creating a parabolic curve and rotating the sketch to create the solid, then applying a perfect mirror material and setting up a parallel camera with the same dimensions as the imager. I have found that the curve used to generate this mirror is not quite parabolic - so it would be a polynomial curve, so my question is how do I work out the polynomial equation which describes the curve which I rotate into a solid to create the mirror which distorts the scene given the following distortion polynomial:
The distortion curve I am using is as follows:
Y = 0.0001X2 + 0.0186X – 0.001
where Y is the image height (measured in any direction from the center of the imager) and X is the field angle.
The apex point is 1.22mm behind the front lens surface. Focal length is 1.17mm, lens is 190 degree fisheye.
So this gives me the distortion curve - field angle vs imager height but it doesnt describe the surface of the mirror.
My other approach was to actually create a lens in CAD and apply a glass material with the correct index of refraction but this also presents the same problem of the shape of the lens to give me the correct scene distortion, plus i'm getting into actual lens design which is a little bit beyond me at the moment - although if it works I'd be happy to do it this way.
Any help would be very apreciated!!
Thanks in advance





RE: How to design a Fisheye lens based on distortion curve
http://en.wikipedia.org/wiki/Parabola
and here is a java app example:
http://www.analyzemath.com/parabola/Equation.html
Han primo incensus
RE: How to design a Fisheye lens based on distortion curve
TTFN
http://tinyurl.com/7ofakss" border="0" alt="" />
FAQ731-376: Eng-Tips.com Forum Policies
RE: How to design a Fisheye lens based on distortion curve
I typically use VOL-CT http://saavision.com/products.aspx. With this you can distort an image based on prescriptions and Zernikies. I have never tried to create this in CAD however I would be very careful if you need accurate results. I hope this helps.
Rob Stupplebeen
https://sites.google.com/site/robertkstupplebeen/