신호의 크기 (압축 감지)보다 적은 관측을 사용하여 이미지를 재구성하려고합니다. 다음 코드를 실행하려고합니다. -l1 마법 오류 - matlab
A = imread('cameraman.png');
x_i = 37;
y_i = 95;
s = 35;
A = A([x_i:x_i+s],[y_i:y_i+s]);
x = double(A(:));
figure(1),imshow(A)
xlabel('original')
n=length(x);
m=floor(n/3);
Phi=randn(m,n); %Measurment Matrix
Psi=dftmtx(n); %sensing Matrix(or can be dct(eye(n)))
y=Phi*x; %compressed signal
Theta=Phi*Psi;
%Initial Guess: y=Theta*s => s=Theta\y
s2=Theta\y;
%Solution
s1=l1qc_logbarrier(s2, Theta,[], y, 1e-1, 1e-1);
%Reconstruction
x1=Psi*s1;
figure,imshow(reshape(x1,size(A)), [0 256]),xlabel('OMP')
그러나 코드를 실행할 때 다음 오류가 발생합니다.
Error using linsolve
Matrix must be positive definite.
Error in l1qc_newton (line 92)
[dx,hcond] = linsolve(H11p, w1p, opts);
Error in l1qc_logbarrier (line 104)
[xp, up, ntiter] = l1qc_newton(x, u, A, At, b, epsilon, tau, newtontol,
newtonmaxiter, cgtol, cgmaxiter);
Error in cs_image2 (line 23)
s1=l1qc_logbarrier(s2, Theta,[], y, 1e-1, 1e-1);
위의 코드는 감지 매트릭스가 dft 매트릭스 대신 dct 매트릭스 인 경우 솔루션을 복구합니다. 누군가가 오류가있는 곳으로 나를 가리킬 수 있습니까? 그것은 l1-magic에 내재 된 문제입니까? 다른 해결사를 사용하면 저에게 도움이됩니까?
참고 : l1qc_logbarrier는 라이브러리 l1 마법의 함수입니다. http://users.ece.gatech.edu/justin/l1magic/index.html
l1qc_logbarrier로 해결할 -
무엇이'l1qc_logbarrier'입니까 ?? 귀하의 게시물에 코드를 포함하십시오! –
l1qc_barrier는 라이브러리 l1 마법의 함수입니다. http://users.ece.gatech.edu/justin/l1magic/index.html – pyronic