function [ H,ok ] = estimateHomography( X1,X2 ) numMatches=size(X1,2) clear H score ok ; for t = 1:100 ; subset = vl_colsubset(1:numMatches, 4) ; A = [] ; for i = subset A = cat(1, A, kron(X1(:,i)', vl_hat(X2(:,i)))) ; end [U,S,V] = svd(A) ; H{t} = reshape(V(:,9),3,3) ; 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 [score, best] = max(score) ; H = H{best} ; ok = ok{best} ; end
时间: 2023-03-28 20:03:31 浏览: 130
这是一个估计单应性矩阵的函数,输入参数 X1 和 X2 分别表示两个图像中匹配点的坐标,输出参数 H 表示估计得到的单应性矩阵,ok 表示哪些匹配点被用于估计单应性矩阵。该函数使用随机采样一致性算法进行估计。
阅读全文