利用ransac算法估算变换矩阵

u012686447 2016-05-25 07:11:40
在VL_faet开源库里有一段关于图像拼接的程序,其中有一部分是利用RANSAC算法计算变换矩阵的,有部分程序看不懂,希望有大神能指点一下,主要是怎么算出变换矩阵H的?怎么还有SVD奇异值分解什么的,实在是不能理解啊
for t = 1:100 % 迭代100次,每次进行比较,最后选择最佳的H
% estimate homograpyh估计单应性
subset = vl_colsubset(1:numMatches, 4) ;%1~nummatches 取随机四个匹配点
A = [] ;
for i = subset
A = cat(1, A, kron(X1(:,i)', vl_hat(X2(:,i)))) ;
%cat(1,A,B)=[A;B],kron(A,B)表示[A(1,1)*B,A(1,2)*B,...]每个矩阵在行方向上拼接,vl_hat(A)把A变成一个3*3的反对称矩阵
end
[U,S,V] = svd(A) ;%U*S*V'=A
H{t} = reshape(V(:,9),3,3) ;%把V的第9列转置,再重新组合成3*3的矩阵

% score homography把单应性记下
X2_ = H{t} * X1 ;
du = X2_(1,:)./X2_(3,:) - X2(1,:)./X2(3,:) ;
dv = X2_(2,:)./X2_(3,:) - X2(2,:)./X2(3,:) ;
ok{t} = (du.*du + dv.*dv) < 6*6 ;
score(t) = sum(ok{t}) ;
end

[score1, best] = max(score) ;
H = H{best} ;
ok = ok{best} ;
...全文
646 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssbqrm 2016-05-25
  • 打赏
  • 举报
回复
求解H主要是解方程吧,svd就是解方程组用的,具体你可以看多视图几何那本书,那里面讲得很详细的

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧