0
,我需要解決LSQR結果在很大程度上取決於權重
argmin||W*FT^-1(Ax)-W*p||
使用LSQR。 p是圖像,x是k空間矩陣,A是矩陣,W是加權矩陣。爲了將它們傳遞給MATLAB LSQR,我矢量P,X和W這是我的代碼:
b=W.*p;
x=lsqr(@(x1,modo)FUNC(x1,W_vector,A,modo),b,tol,maxit);
X_k_lsqr=reshape(x,dim(1),dim(2),dim(3));
X_lsqr=real(ifftn(X_k_lsqr)).*MASK(:,:,:,1);
%%輔助功能
function [result modo]=FUNC(x1,W_vector,A,modo)
%Computes y=A*x for modo='notransp'
%Computes y=A'*x for modo='transp'
switch modo
case 'notransp'
res=A*x1;
R1=reshape(res,norient,dim(1)*dim(2)*dim(3));
for co=1:norient
R2(:,:,:,co)=reshape(R1(co,:),dim(1),dim(2),dim(3));
FR(:,:,:,co)=ifftn(R2(:,:,:,co));
aux=FR(:,:,:,co);
R3(co,:)=aux(:).';
end
result=W.*R3(:);
case 'transp'
RR1=reshape(x1./(W+eps),norient,dim(1)*dim(2)*dim(3));
for co=1:norient
RR2(:,:,:,co)=reshape(RR1(co,:),dim(1),dim(2),dim(3));
FRR(:,:,:,co)=fftn(RR2(:,:,:,co));
aux=FRR(:,:,:,co);
RR3(co,:)=aux(:).';
end
result=A'*RR3(:);
end
end
與W出現在最小化問題的兩個方面,我會期待我得到的圖像在W值上幾乎是獨立的。如果我改變W,圖像在外觀上看起來是相同的,但其值依賴於W.我不知道我的代碼是否有問題。我應該爲不同的W獲得幾乎相同的值嗎? 非常感謝您的幫助。
編輯:我添加了一個初始的猜測,現在結果不依賴W.有誰知道爲什麼?
我檢查了這個標誌,它是0,但結果仍然取決於W.例如:對於W,獲得的值在1e-2的範圍內;對於10 * W他們在1e-4的範圍內 – Marta
我希望,我可以產生同樣的問題。我看到了只有次優解決方案的這種依賴關係。所以,在這種情況下,解決方案取決於初始猜測,權重和解算器公差。我不確定,但你的答案意味着這個W操縱解算器精度,正如我在前面的答案中所說的那樣。因此,解算器停止殘留容量接近W *的地方。 – Winsoft
我添加了一個初始猜測,現在結果不依賴於W.我仍然沒有獲得我希望的結果,但至少這個問題似乎已經解決了。謝謝! – Marta