我正在尝试编写一个用于图像变形的 matlab 代码。我必须先对图像进行预变形,我已将 imwarp 函数与 tform 结合使用,如下所示,代码如下,
function []= min_view_morphing(im1,im2)
F = findfundmat(im1,im2)
[ H1, H2 ] = computeH1H2( F )
H1(:,3)=0;H1(3,:)=0; H1(3,3)=1;
H2(:,3)=0;H2(3,:)=0; H2(3,3)=1;
inH1=inv(H1);
inH2=inv(H2);
% t_aff1=maketform('projective',real(inH1));
% t_aff2=maketform('projective',real(inH2));
%
% imw1=imtransform(im2double(im1),t_aff1,'FillValues',.3);
% figure,imshow(imw1);
% imw2=imtransform(im2double(im2),t_aff2,'FillValues',.3);
% figure,imshow(w2);
H1=affine2d(inH1);
H2=affine2d(inH2);
imw1=imwarp(im1,H1);
imw2=imwarp(im2,H2);
figure,imshow(imw1);
figure,imshow(imw2);
每次运行这个程序时,无论我使用的图像尺寸有多小,都会出现内存不足错误,而且这种情况只发生在第二张图像上,而 H1 和 H2 都是 3 个交叉 3 矩阵。有什么解决办法吗?