Newsgroups: sci.image.processing
Path: cantaloupe.srv.cs.cmu.edu!europa.chnt.gtegsc.com!news.mathworks.com!newshost.marcam.com!zip.eecs.umich.edu!umn.edu!femto!safonov
From: safonov@femto (Alex Safonov)
Subject: Re: Error interpolation question for a lens correction project
Message-ID: <DD3zLs.23B@news.cis.umn.edu>
Sender: news@news.cis.umn.edu (Usenet News Administration)
Nntp-Posting-Host: femto.cs.umn.edu
Organization: University of Minnesota, Twin Cities
X-Newsreader: TIN [version 1.2 PL2]
References: <4095ub$i3k@null.umd.umich.edu>
Date: Thu, 10 Aug 1995 19:03:34 GMT
Lines: 49

Jason Damron (ceo@umd.umich.edu) wrote:
:    I'm working on a software project to detect and correct lens 
: distortion.  This process involves taking an image of a grid, using the 
: lens in question, and using a C program to fit a curve to each line.

:    My question is -- What is the best way of determining the error of any 
: given point, in terms of accuracy and implementation?

:    The method that I am in the process of implementing is linear 
: interpolation.  It is based on the simple concept of similiar triangles.  
: First, the error deviation of each grid line, that surround the given 
: point, is found by comparison to a straight line.  Next, the perpendicular 
: distance between the point and the grid lines is found.  This distance 
: and the grid line error deviation are placed in a simple ratio equation 
: to find the error for the specific point.

:    Are there better ways to determine the error of an individual point? 
: Are there improvements that can be made to the algorithm above?  Any help 
: would be greatly appreciated.

: -Jason
: ceo@umd.umich.edu
: jdamron@umdsun2.umd.umich.edu

I work on a similar project in (confocal) microscopy and currently do the
following:
  - take image of grid;
  - extract grid line intersections from the image (there are some pointers
to corner extraction on gopher://skyking.OCE.ORST.EDU:71, but I have
not implemented them in code yet).
  - try to fit a lens distortion model onto the grid points. The distortion
model can include just radial, or radial and tangential distortions. This
leads to a non-linear least-squares problem. I use Matlab to solve those,
with moderate success. 

A good article on fitting lens distortion onto grids is by D.C. Brown, 
Close-range camera calibration, in Photogrammetric Engineering, 
37(8) August 1971, p.855-866. Another article I found is by G.F. McLean, 
Image Warping for Calibration and Removal of Lens Distortion,
in Proceedings IEEE Pacific Rim Conference on Comput Signal Processing,
1993, vol. 1, p.170-173. 

Sorry that does not quite answer your question about point error. Anybody
used other approaches?

--
Alex Safonov                 safonov@cs.umn.edu
2-217 EECS Building	     Office: 625-0304
University of Minnesota	     Home  : 378-5165
