Fitting to multiple lines to measure center of a cross in a photo
1 view (last 30 days)
Show older comments
Hi,
I have a set of black and white pixels. By looking, you can tell the white pixels make up a cross. I would like to find the equations of the 2 best fit lines, so that I can find the intersection and measure the center of the cross to sub-pixel accuracy. How would one best fit one dataset to two different equations?
I have also played around with Hough Transform based line finding, but it does not seem to "best fit" the line; namely my hough results are lines that are not well centered.
-Jen
0 Comments
Accepted Answer
Matt J
on 5 Jun 2013
Edited: Matt J
on 5 Jun 2013
Well, you would first need to segment the white pixels as belonging to one line or the other. The results of the Hough transform would probably be useful for that.
Once you have the (i,j) coordinates of pixels on a given line as column vectors I and J, you can fit it using total least squares
c=mean([I,J]).';
[u,s,v]=svd( [ I-c(1),J-c(2) ] ,0);
The parametric equation for the line is then
L(t)= c+t*v(:,1)
When you have the parametric equation for both lines, you would solve for the intersection.
3 Comments
More Answers (1)
Image Analyst
on 5 Jun 2013
Can you upload your picture to http://snag.gy so we can see it. I'm wondering if the cross is tilted. If it's not tilted, it's simpler.
What about just finding the centroid of the cross, or the weighted centroid? I'm not sure finding where lines cross would be any more accurate than that, at least for crosses that are made up of straight bars.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!