{ "access": { "embargo": { "active": false, "reason": null }, "files": "public", "record": "public", "status": "open" }, "created": "2020-02-14T15:00:10.241292+00:00", "custom_fields": {}, "deletion_status": { "is_deleted": false, "status": "P" }, "files": { "count": 2, "enabled": true, "entries": { "dticode.zip": { "checksum": "md5:d5f6dc587270744ab2b3d77ed2612d90", "ext": "zip", "id": "7c29a2ba-5e9b-43d9-be5a-f721c81d42e4", "key": "dticode.zip", "metadata": null, "mimetype": "application/zip", "size": 1048797 }, "libtu-3.zip": { "checksum": "md5:fc63b9ce28d6882095d0e5fd62fee758", "ext": "zip", "id": "efb423b4-54f3-4dbd-899d-c54aaedbf366", "key": "libtu-3.zip", "metadata": null, "mimetype": "application/zip", "size": 116217 } }, "order": [], "total_bytes": 1165014 }, "id": "3667666", "is_draft": false, "is_published": true, "links": { "access": "https://zenodo.org/api/records/3667666/access", "access_links": "https://zenodo.org/api/records/3667666/access/links", "access_request": "https://zenodo.org/api/records/3667666/access/request", "access_users": "https://zenodo.org/api/records/3667666/access/users", "archive": "https://zenodo.org/api/records/3667666/files-archive", "archive_media": "https://zenodo.org/api/records/3667666/media-files-archive", "communities": "https://zenodo.org/api/records/3667666/communities", "communities-suggestions": "https://zenodo.org/api/records/3667666/communities-suggestions", "doi": "https://doi.org/10.5281/zenodo.3667666", "draft": "https://zenodo.org/api/records/3667666/draft", "files": "https://zenodo.org/api/records/3667666/files", "latest": "https://zenodo.org/api/records/3667666/versions/latest", "latest_html": "https://zenodo.org/records/3667666/latest", "media_files": "https://zenodo.org/api/records/3667666/media-files", "parent": "https://zenodo.org/api/records/3667665", "parent_doi": "https://zenodo.org/doi/10.5281/zenodo.3667665", "parent_html": "https://zenodo.org/records/3667665", "requests": "https://zenodo.org/api/records/3667666/requests", "reserve_doi": "https://zenodo.org/api/records/3667666/draft/pids/doi", "self": "https://zenodo.org/api/records/3667666", "self_doi": "https://zenodo.org/doi/10.5281/zenodo.3667666", "self_html": "https://zenodo.org/records/3667666", "self_iiif_manifest": "https://zenodo.org/api/iiif/record:3667666/manifest", "self_iiif_sequence": "https://zenodo.org/api/iiif/record:3667666/sequence/default", "versions": "https://zenodo.org/api/records/3667666/versions" }, "media_files": { "count": 0, "enabled": false, "entries": {}, "order": [], "total_bytes": 0 }, "metadata": { "creators": [ { "person_or_org": { "family_name": "Tuomo Valkonen", "identifiers": [ { "identifier": "0000-0001-6683-3572", "scheme": "orcid" } ], "name": "Tuomo Valkonen", "type": "personal" } } ], "description": "
Written 2012-2014 by Tuomo Valkonen tuomov@iki.fi, University of Graz & University of Cambridge.
\n\nThis repository includes code for TGV^2 and TV denoising and reconstruction from sparse k-space data. For problems with linear operators, the Chambolle-Pock [3] modified primal dual hybrid gradient method (PDHGM) is used. For problems with non-linear, the non-linear PHDHGM of [5] and the Gauss-Newton method are supported. Optional Bregman iterations may be applied to many problems. The code is parallelised using OpenMP. There is also OpenACC GPU support, but at the moment it is not actively maintained.
\n\nThe included programs and cases covered are the following.
\n\ndenoise: basic colour or grayscale image denoising.
\n\ttensorreg: Diffusion tensor denoising per [2]. This solves the optionally positivity-constrained problem
\n\n\tmin_{u >= 0} FID(f-Au) + REG(u)\n
\n\n\tfor tensor fields u and f. For u, tensors of order 0 (scalar functions), 1 (vector fields), and 2 are supported. A is a pointwise operator, and FID either the L1 fidelity or the squared L2 fidelity. The regulariser REG is one of TGV^2, TD (TGV^1), or TV.
\n\n\tSmall sub-problems in the positivity-constrained case with A!=I are solved with the primal-dual interior point method of [4].
\n\tksreg: Sparse reconstruction from K-space data. This solves the problem
\n\n\tmin_u |f-SFu|^2 + REG(u)
\n\n\tfor complex image u, and sparse K-space data f. Here S is the sparse sampling operator and F the (discrete) Fourier transform.
\n\tksreg-nl: The same as ksreg, but with individual regularisation of the phase and magnitude of u, and non-linear reconstruction of u from these.
\n\tContents
\n\ndoc/ Documentation, include a user guide to the \n tensorreg program, and quick developer\n introduction to the C code.\n\nexamples/ Multiple use-case examples, and miscellaneous\n Matlab code.\n\nsrc/ Source code.\n\nmatlab/ Auxiliary Matlab code. \n (Plotting, NIFTI import, ...)\n See README.matlab for information.\n\nmex/ Auxiliary Mex routines for Matlab.\n Necessary for the plotting routine!\n
\n\nDependencies
\n\nGNU make http://www.gnu.org/\n\n Other variants of make may not work.\n\npgcc http://www.pgroup.com/\n\n Or any other OpenACC compiler for the\n GPU implementation.\n\nFFTW3 http://www.fftw.org/\n\n For Fast Fourier Transform.\n\nNFFT3 http://www-user.tu-chemnitz.de/~potts/nfft/\n\n Non-uniform Fast Fourier Transform.\n
\n\nCompilation
\n\nTo compile the code, follow the following steps
\n\nDownload install the libtu utility library available from this same Zenodo page.
\n\tCopy local.mk.in
as local.mk
Edit local.mk
to suit your system and choices.
Run make
Third-party code
\n\nThis package includes NIFTI code by Jimmy Shen (matlab/NIFTI_code), and Rice distribution code by Ged Ridgway (matlab/rician).
\n\nLicense
\n\nThis work is published under GNU GPLv3. See the attached LICENSE.txt.
\n\nReferences
\n\nK. Bredies and K. Kunisch and T. Pock, Total generalised variation, SIAM Journal on Imaging Sciences 3 (2011), 492--526. http://dx.doi.org/10.1137/090769521
\n\tT. Valkonen, K. Bredies, and F. Knoll, Total generalised variation in diffusion tensor imaging, SIAM Journal on Imaging Sciences 6 (2013), 487–525. http://dx.doi.org/10.1137/120867172, https://tuomov.iki.fi/mathematics/dtireg.pdf>
\n\tA. Chambolle and T. Pock, A first-order primal-dual algorithm for convex problems with applications to imaging, Journal of Mathematical Imaging and Vision 40 (2011), 120-145. http://dx.doi.org/10.1007/s10851-010-0251-1
\n\tT. Valkonen, A method for weighted projections to the positive definite cone, Optimization 64 (2015), 2253–2275. https://tuomov.iki.fi/mathematics/scaleproj.pdf, https://dx.doi.org/10.1080/02331934.2014.929680
\n\tT. Valkonen, A primal-dual hybrid gradient method for non-linear operators with applications to MRI (2013), Inverse Problems 30 (2014),055012, http://dx.doi.org/10.1088/0266-5611/30/5/055012, http://iki.fi/tuomov/mathematics/nl-pdhgm.pdf
\n\t