很抱歉有人问过这个问题,但是解决方案不起作用。 这是the problem link。我正在使用matlab通过固有和非固有参数将一台摄像机的2d图像投影到3d平面上,然后将其重新投影到另一台摄像机。如何将颜色信息引入到重新投影的点中?
假设image1中的一个像素为[u1,v1],它对应于世界上的点[X,Y]。P1和P2分别是两个摄像机的投影矩阵。
[u1,v1] = [X,Y,1]*[R1;t1]*K1 = [X,Y,1]*P1
[u2,v2] = [X,Y,1]*[R2;t2]*K2 = [X,Y,1]*P2
[u2,v2] = [u1,v1]*inv(P1)*P2
所以tform应该是inv(P1)* P2
根据链接的解决方案,我在matlab中使用函数“ imwarp”。
imwarp(img, perspecticv2d( P1\P2 ));
具有颜色信息是很好的。但是,图像位置不正确。我用错了吗?
然后我尝试了另一种解决方案。
[m,n,c]= size(I);
[X, Y] = meshgrid(1:m, 1:n);
imagePoints = [X(:) Y(:) ones(m*n,1)];
我将图像点投影到世界上,然后将它们重新投影到相机上。它在位置上很好用,但是如何将色彩信息引入到投影的图像中呢?
我希望输出的图像具有颜色和良好的位置 预先感谢。