nonlinear 2d calibration of line-camera using known pattern - how to align world coordinates to points?
Show older comments
I rephrased the question, see last comment
--------------------------------------------
Hi all,
I'm currently working with a highres line camera scanner and we want to use it for measurements. Therefore we need to be able to calibrate it properly in 2d.
We have an accurate test-pattern made by photolithography. We can assume it to be 'exact'. I have managed to come up with a very robust subpixel circle recognition to find the points of interest so I have no question regarding image recognition.
What is unclear to me at this point is how to use the found image coordinates together with the known spatial correlation in order to come up with a distortion map which ultimately would be used to correct the distortion.
The example shows a cropped subset of a typical image of circles with 400µm xy spacing. The recognition is already done (red circles with blue centercross) leaving out structures that are too close to the edge. Now, how do I calculate a distortion-map from that?

I played around with some algorithms like knnsearch in order to look at the lokal distances and I can see that they vary significantly. I don't want to simply create a coordinate system using arbitrary points and then measure relative distances to that system because I fear that might induce large errors over big distances.
My guess is that using a combined approach of the local information (distances) in combination with the 'far field' (straight lines, orthogonality etc.) should result in the most robst outcome but I'm stuck on how to continue. In the end we want to do many measurements in order to determine the measurement errors caused by vibration and thermal influences i.e.
I'm fairly certain this has been solved (many) times but as a non-expert on the field I just don't know what to search for exactly. I would appreciating any help!
regards
Arnold
6 Comments
Walter Roberson
on 2 Jul 2016
Is there a possibility of a second pass through the camera, preferably with the same sample rotated?
arnold
on 2 Jul 2016
arnold
on 5 Jul 2016
praveen rai
on 28 Dec 2017
@arnold can u provide me the code that how u find robust subpixel circle recognition bcz i want to find the square
Answers (1)
Image Analyst
on 2 Jul 2016
0 votes
I'd look at the average inter-row spacing as a function of row. It should be uniform. If there's a bias, you can determine that and use it to correct your real, non-calibration images. If you scan the calibration target multiple times and find that the inter-row distance is not deterministic and basically random, then there's not much you can do.
13 Comments
arnold
on 2 Jul 2016
Image Analyst
on 2 Jul 2016
You can't determine the "distortion" for a single image unless you have some known landmarks in there. For example if you just put a slide with some amorphous biological cells on it into your system, you won't be able to tell whether it's distorted or not. Will all your samples have some known landmarks on them?
Image Analyst
on 2 Jul 2016
That's what I thought, though I wasn't sure if you had fiducials/landmarks in your samples. So, what's the problem? You can find the circles and can do so for lots of calibration images so you can know any systematic and random bias/jitter from line to line. And I'm assuming you can then just apply this transform, at least the systematic part, to the "real" sample. Now sure where the stumbling block is.
Image Analyst
on 3 Jul 2016
Is the slant of your grid at a known, fairly constant angle? If so, you can use a template to determine which of the found circles are in which row. Then find out the distance of each circle to the closest circle in the adjacent row. Now you have a N by 2 array of row spacing and row. You can do a regression to see if the row spacing depends on the line. Do a scatterplot first to see if regressing a line through them makes sense. If it does, like it looks like a quadratic or something, then use polyfit().
arnold
on 3 Jul 2016
Walter Roberson
on 3 Jul 2016
I recommend posting your rephrased question here as a comment on your original question.
arnold
on 3 Jul 2016
Categories
Find more on Geometric Transformation and Image Registration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




