2013-02-13 28 views
1

我有一個圖片MATLAB:射影變換

enter image description here

,我想通過把它放回這樣得到射影變換:

enter image description here

,但唯一的結果,我可以看到是這樣的:

enter image description here

我找不到我的錯誤。我的代碼(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

好像你有你的軸混合起來的「方向」。試試這個映射:

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

對於黑色的背景,你可以通過設置imtransform

一些參數/值對(可惜我不是在用MATLAB計算機解決它,所以我不能保證映射的正確性,我會明天檢查一下,如果它錯了,更新它)

+0

仍然不想要我想要的。然而,當我在頭腦中編譯你的代碼時,matlab給了我期望的和我的代碼 - 不是...... – myname 2013-02-14 23:28:02