在投影变换中找到系数

时间:2018-11-28 22:19:55

标签: matlab image-processing

我被赋予了将一个图像的一部分映射到另一个图像的任务。 基本上给定ImageAImageB,我用ginput以相同的方式从ImageA取4分,然后从ImageB取4分(在ImageA中将4点覆盖映射到该部分中,只需将部分从ImageB变形为ImageA的尖头部分即可。

当我试图按照指示使用最小二乘最小化方法来尝试使用添加到帖子中的函数时,会出现我的问题,但是当我根据公式编写此函数时,它只是行不通并且无法提供正确的输出,也许我只是做错了。 我的其余代码基本上都弄乱了所有的变体,但似乎我的主要问题是系数错误。

function [ result ] = findCoefficients(imageA, imageB)

% x y 0 0 1 0 -xx' -yx'
% 0 0 x y 0 1 -xy' -yy'  
% y' and x' are destination coordinates of ImageA, while ImageB is to be mapped into ImageA

A = 
[imageB(1) imageB(2) 0 0 1 0 -imageB(1)*imageA(1) -imageB(2)*imageA(1); 
0 0 imageB(1) imageB(2) 0 1 -imageB(1)*imageA(2) -imageB(2)*imageA(2);
imageB(3) imageB(4) 0 0 1 0 -imageB(3)*imageA(3) -imageB(4)*imageA(3);
0 0 imageB(3) imageB(4) 0 1 -imageB(3)*imageA(4) -imageB(4)*imageA(4);
imageB(5) imageB(6) 0 0 1 0 -imageB(5)*imageA(5) -imageB(6)*imageA(5);
0 0 imageB(6) imageB(6) 0 1 -imageB(5)*imageA(6) -imageB(6)*imageA(6);
imageB(7) imageB(8) 0 0 1 0 -imageB(7)*imageA(7) -imageB(8)*imageA(7);
0 0 imageB(7) imageB(8) 0 1 -imageB(7)*imageA(8) -imageB(8)*imageA(8)];
B = imageA(:);
result = pinv(A)*B;
end

0 个答案:

没有答案