matlab 拼接矩阵,MATLAB中图像拼接的单应矩阵

我一直试图通过使用来自2个图像的手动选择的对应点来计算matlab中的单应矩阵。这是我目前的代码:

spoints = [330.756756756757,923.310810810811; %points from source image

335.945945945946,1016.71621621622;

495.081081081081,771.094594594595;

498.540540540540,933.689189189189];

dpoints = [310.000000000000,477.040540540540; %points from destination image

320.378378378378,558.337837837838;

462.216216216216,319.635135135135;

469.135135135135,471.851351351351];

%/homography matrix///

n = size(spoints, 1);

A = zeros(n*2,8);

b = zeros(n*2,1);

j=1;

for i=1:n

A(j,:)=[dpoints(i,1) dpoints(i,2) 1 0 0 0 -spoints(i,1)*dpoints(i,1) - spoints(i,1)*dpoints(i,2)];

b(j,1)=spoints(i,1);

j=j+1;

A(j,:)=[0 0 0 dpoints(i,1) dpoints(i,2) 1 -spoints(i,2)*dpoints(i,1) -spoints(i,2)*dpoints(i,2)];

b(j,1)=spoints(i,2);

j=j+1;

end

x = (A\b);

H = [x(1,1) x(2,1) x(3,1);

x(4,1) x(5,1) x(6,1);

x(7,1) x(8,1) 1];

这不会给出正确的H矩阵。我检查了

bla = zeros(4,3);

bla(1,:,:)=H*[dpoints(1,:),1]';

bla(2,:,:)=H*[dpoints(2,:),1]';

bla(3,:,:)=H*[dpoints(3,:),1]';

bla(4,:,:)=H*[dpoints(4,:),1]';

bla矩阵应该等于spoints矩阵,但不是。我做错了什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值