我有一张照片
我希望通过像这样转移它来获得投射变换:
但我能看到的唯一结果是:
我无法找到我的错误。我的代码(A - 想要转换的图片):
p=0.25;
a=p*rows(A);
U = @(m, n) ([1 1; 1 m; n 1; n m]);
V = @(m, n) ([1+a 1+a; 1-a m-a; n-a 1+a; n+a m-a]);
D=transform(A, U(rows(A), cols(A)),...
V(rows(A), cols(A)),...
'projective');
imshow(D)
function B=transform(A,U,V,type)
[m n] = size(A)
tform = maketform(type,U,V);
B = imtransform(A,tform,'size',[m n]);
答案 0 :(得分:0)
似乎你的轴的“方向”混乱了。试试这个映射:
V = @(m, n) ([1+a 1-a; 1+a m+a; n-a 1+a; n-a m-a]);
对于黑色背景,您可以通过在imtransform
(不幸的是我不是带有matlab的计算机,所以我不能保证映射的正确性。明天我会检查它并在错误的情况下更新它)