How to add a total variation term to my tomographic reconstruction problem?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi there,
I have got a very simple model to do a tomographic reconstruction:
arg min_x ||Ax - y||^2
in which, A is the system matrix and y is the true projections.
We can solve the problem using Matlab Quasi-Newton (fminunc) or lsqr function; however, may I ask how to add a total variation penalty to the objective function please?
arg min_x ||Ax - y||^2 + TV(x)
Is there any exsisting implementation in Matlab I can use?
Thanks very much.
Best regards, Aaronne
댓글 수: 0
답변 (1개)
Bjorn Gustavsson
2011년 6월 1일
Wouldn't TV(x) be something similar to:
[D1,D2,D3] = gradient(x);
TV = sum((D1.^2+D2.^2+D3.^2).^.5);
If you're using fminunc or the other general optimizers this should be fairly straightforward to add. But wouldn't you get approximately the same by:
D = del2(x);
TV = sum(abs(D));
It is just a smoothing term after all?
댓글 수: 2
Bjorn Gustavsson
2011년 6월 3일
Well, I guess that version 1 should be close enough to the definition of TV I found, but I don't think there should be any practical difference between using that as a smoother or the del2 version. Perhaps it would be wiser to use del2(x).^2 instead of the abs.
If you need the gradient then either you have to do the full tedious expansions yourself, or (hopefully) you could use the "Adaptive Robust Numerical Differentiation" package found on the file exchange: http://www.mathworks.com/matlabcentral/fileexchange/13490-adaptive-robust-numerical-differentiation
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!