IHT TV

Iterative hard thresholding with variable encoding model, uses TV.

mr_utils.cs.thresholding.iht_tv.IHT_TV(y, forward_fun, inverse_fun, k, mu=1, tol=1e-08, do_reordering=False, x=None, ignore_residual=False, disp=False, maxiter=500)[source]

IHT for generic encoding model and TV constraint.

Parameters:
  • y (array_like) – Measured data, i.e., y = Ax.
  • forward_fun (callable) – A, the forward transformation function.
  • inverse_fun (callable) – A^H, the inverse transformation function.
  • k (int) – Sparsity measure (number of nonzero coefficients expected).
  • mu (float, optional) – Step size.
  • tol (float, optional) – Stop when stopping criteria meets this threshold.
  • do_reordering (bool, optional) – Reorder column-stacked true image.
  • x (array_like, optional) – The true image we are trying to reconstruct.
  • ignore_residual (bool, optional) – Whether or not to break out of loop if resid increases.
  • disp (bool, optional) – Whether or not to display iteration info.
  • maxiter (int, optional) – Maximum number of iterations.
Returns:

x_hat – Estimate of x.

Return type:

array_like

Notes

Solves the problem:

\[\min_x || y - Ax ||^2_2 \text{ s.t. } || \text{TV}(x) ||_0 \leq k\]

If x=None, then MSE will not be calculated.