2014-02-19 43 views
1

我已經使用svd分解了我的圖像,並通過添加矩陣修改了奇異值,假設爲A。我怎樣才能找回這個矩陣A如何使用SVD修改後重建原始圖像

例如:

m=[1 2 3; 4 5 6; 7 8 9]; 
[u s v]= svd(m); 
A=[0 2 1; 3 5 6; 8 9 4]; 
sw= s+A; 
new= u*sw*v; 

現在我如何從矩陣new找回我的矩陣A

回答

1

爲了重建從sv通過u鑑於其SVD,A你會使用

m_rec = u*s*v'; 

所以你的情況只需更換s通過sw

m_rec = u*sw*v'; 

也就是說,你僅在您的矩陣new中缺少共軛轉置(')。

但是,您應用於s的修改似乎太大,甚至不是對角線,因此您不會正確重構m。如果修改很小,你會。例如:

>> sw = s + diag(.1*randn(1,3)); 
>> m_rec = u*sw*v' 
m_rec = 
    0.9987 1.9977 3.0348 
    4.0070 5.0543 6.0256 
    7.0533 8.0348 9.0543 
+0

謝謝路易斯門多,爲您的答覆,其實我想從矩陣「新」矩陣「A」。 – user3327980

+0

@ user3327980在你的矩陣「new」中,你需要用'v''替換'v'。 –

+0

好吧new = u * sw * v';現在我怎麼能得到矩陣A ..?請重新閱讀我的例子.. m = [1 2 3; 4 5 6; 7 8 9]; [u s v] = svd(m); A = [0 2 1; 3 5 6; 8 9 4]; sw = s + A; new = u * sw * v';現在我想從矩陣「新」中得到矩陣「A」... ...以任何方式善意地幫助我 – user3327980

0

有一個誤會正在進行。奇異值的用於秩RHO的矩陣的矩陣具有性質(1)它是對角像和(2)的奇異值被排序,使得小號 > = 小號 > = 小號 > = ... s rho> 0.您描述的矩陣添加違反了兩個原則。爲了放大,如果擾亂奇異值矩陣,您不得包含非對角線條目,並且必須保留阿基米德排序。當第三行中的矩陣A被添加到矩陣s時,結果矩陣不是奇異值矩陣。

相關問題