Multidimensional fitting of two sets of data

Click For Summary
SUMMARY

The discussion focuses on calibrating a camera by finding a transfer function that corrects distorted data points from a laser reflection. The user has attempted multidimensional fitting using Singular Value Decomposition (SVD) and a 6th order polynomial merit function from "Numerical Recipes," but the results lack sufficient accuracy. The goal is to derive a function f(x,y) that maps original data points to their distorted counterparts and potentially find its inverse g(q) for accurate image analysis.

PREREQUISITES
  • Understanding of multidimensional data fitting techniques
  • Familiarity with Singular Value Decomposition (SVD)
  • Knowledge of polynomial interpolation methods
  • Experience with numerical analysis and optimization
NEXT STEPS
  • Research advanced polynomial fitting techniques for multidimensional data
  • Explore spline interpolation methods for data correction
  • Investigate the use of machine learning algorithms for function approximation
  • Learn about error analysis in calibration processes
USEFUL FOR

This discussion is beneficial for data scientists, optical engineers, and researchers involved in image processing and calibration of optical systems.

datameng
Messages
1
Reaction score
0
Hello, my problem is the following:

A lasers gives out a bunch of data points which are reflected off a metal surface and recorded by a camera attached to the side of the laser. The image the camera receives is however distorted.

In order to calibrate the camera I need to find a function of two variables (f(x,y)) which transforms the distortet(wrong) data points back into their originals so that the camera image can be used for accurate analysis.

I know the location (x and y values) of the original image and their corresponding camera positions (x' and y').

How can I use these to find a transfer function between the two data sets?
I have already used SVD and a 6th order polynom merit function for multidimensional fits I found in "Numerical Recipes", and although I get resonable results, they are not accurate enough.

Any help is greatly appreciated!
 
Physics news on Phys.org
You'll have to correct me if any assumptions are wrong.

You have two sets of n 2D points, P (original) and Q (camera), with the dimensions 2 \times n. Let's assume there exists a function such that \vec{q} = \vec{f}(\vec{p}) with \vec{p} and \vec{q} being individual points from P and Q respectively and has dimension 2 \times 1.

You then want to find the function \vec{p} = (\vec{f})^{-1}(\vec{q}) = \vec{g}(\vec{q})?

Let's assume the inverse function \vec{g}(\vec{q}) exists. We can then write it, for each individual point, as \left[\begin{array}{c}<br /> p_x \\<br /> p_y \end{array} \right] = \left[\begin{array}{c}<br /> g_x(q_x, q_y) \\<br /> g_y(q_x, q_y) \end{array} \right]
I suppose what you could do then is to interpolate each row, either with polynomials or splines.
 
How many datapoints?
 

Similar threads

Replies
6
Views
1K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 28 ·
Replies
28
Views
3K
  • · Replies 6 ·
Replies
6
Views
1K
  • · Replies 6 ·
Replies
6
Views
1K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 5 ·
Replies
5
Views
4K
Replies
6
Views
1K
Replies
8
Views
2K