MATLAB: Transformation parameter estimation using robusfit()

image processingMATLAB

I want to use matlab function robusfit for calculating transformation parameters. I have set of matched points from sift, X = [x1,y1 ….xn,yn] and y = [x1,y1….xn,yn]. How do i use the function for it?
Thanks in advance.

Best Answer

I should have realized what you meant at first. I don't know much about image registration, but perhaps this will have some analogy to what you want. Let me start with a set of points in two dimensions.
>> xy1 = rand(20,2);
Now I generate another set of points from these by linear transformation plus a little bit of noise in both the x and y coordinates.
>> xy2 = xy1 * [2 -1;3 -.5];
>> xy2(:,1) = xy2(:,1)+10;
>> xy2(:,2) = xy2(:,2)-5;
>> xy2 = xy2 + randn(size(xy2))/100;
I can use backslash to recover the additive and multiplicative constants.
>> B = [ones(20,1) xy1]\xy2
B =
10.0014 -4.9991
1.9839 -1.0092
3.0116 -0.4919
If my data had outliers I might prefer robust fitting. Here's how I can compute a robust estimate of the two columns of coefficients above.
>> robustfit(xy1,xy2(:,1))
ans =
10.0024
1.9831
3.0106
>> robustfit(xy1,xy2(:,2))
ans =
-4.9992
-1.0083
-0.4932
Sorry if this bears no relation to what you want.