Re: [問題] 使用svd做影像還原重建已回收

看板MATLAB作者 (老人家)時間14年前 (2010/07/16 21:28), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《vincent59 (愛世代)》之銘言: : 我在發文前已爬過文和google過了,但是我還是不知如何處理。 : 以下的code是將繆紹綱老師的範例作的簡單改寫。 : clc ; : clear all; : [x,map]=imread('200681788778.jpg');%任一張全彩影像 : A=x(10:320,10:320,:); : [nx,ny]=size(A); : [nx,ny]=size(A); : I=eye(nx,nx); : for i = nx:-1:21 : I(i,i)=0; : end ^^^^^^^^^^^^^^^^^^^^^^^^ 這裡我不知道在幹麻 不過不重要 : [ u d v]=svd(double(A));%svd 似乎並不支援uint8 : B=u*I*d*v'; ^^^^^^^^^^^^^^^^^^^^^^^^ 請 用[ u d v]=svd(double(A(:,:,1))) [ u2 d2 v2]=svd(double(A(:,:,2))) [ u3 d3 v3]=svd(double(A(:,:,3))) 這裡需要將RGB分開 做完再合起來才可以 : subplot(211) : imshow(A,map) : subplot(212) : imshow(B,map) : 出現以下的錯誤訊息 : ??? Undefined function or method 'svd' for input arguments of type 'double' : and : attributes 'full 3d real'. : Error in ==> L4_1p2 at 13 : [ u d v]=svd(double(A)); : 如果將這行A=x(10:320,10:320,:);改為A=x(10:320,10:320); : 就有結果了,卻是黑白影像。 = = ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 當然啊 因為你只抽到影像的R值= = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.100.1

07/16 21:35, , 1F
補充一下A=x(10:320,10:320)是不正確的 只有matlab可用
07/16 21:35, 1F

07/17 00:24, , 2F
謝謝你的回答^^
07/17 00:24, 2F
文章代碼(AID): #1CG5vt10 (MATLAB)
文章代碼(AID): #1CG5vt10 (MATLAB)