1

私は写真を持っています

ここに画像の説明を入力

そして、次のように戻すことで射影変換を取得したい:

ここに画像の説明を入力

しかし、私が見ることができる唯一の結果はこれです:

ここに画像の説明を入力

そして、私は自分の間違いを見つけることができません。私のコード(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]);
4

1 に答える 1

0

軸の「方向」が混同されているようです。このマッピングを試してください:

V = @(m, n) ([1+a 1-a; 1+a m+a; n-a 1+a; n-a m-a]);

黒い背景の場合は、いくつかのパラメーター/値のペアを設定することで修正できますimtransform

(残念ながら、私は matlab を使用しているコンピューターを使用していないため、マッピングの正確性を保証できません。明日確認して、間違っている場合は更新します)

于 2013-02-13T22:09:20.127 に答える