<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/253939</link>
    <title>MATLAB Central Newsreader - The unstableness of my total variation denoising</title>
    <description>Feed for thread: The unstableness of my total variation denoising</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Wed, 17 Jun 2009 11:22:02 -0400</pubDate>
      <title>The unstableness of my total variation denoising</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/253939#658072</link>
      <author>sheng fang</author>
      <description>I am using the gradient descent method for total variation regularized reconstruction. Specifically, the following code is used for the time evolution:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xi = xi + tau*( Num./ Den*lambda + fidelity);&lt;br&gt;
&lt;br&gt;
where the Num./Den is the PDE flow computed using the upwind finite difference scheme and the lambda is the regularization parameter. Besides, the smoothing parameter for TV norm is set as: eps=1 and the tau=0.2;&lt;br&gt;
&lt;br&gt;
I found that the solution becomes highly unstable, if I increased the lambda for strong regualrization. Personally, I think this is  because the CFL condition is broken. However, I didn't see any literature mentioned this problem. Is there a mistake in the parameter selection such as tau and eps or is this a common phenomenon? &lt;br&gt;
&lt;br&gt;
Another question is how to choose the eps? In my case, it seems that eps below one may make the Den too small and result in a very large flow at some pixels. And the whole image was ruinted. However, I remembered that a small eps will have better denoising result. So I don't  know how to handle these two things simultaneously.&lt;br&gt;
And I sincerely hope you guys can give me some suggestions.&lt;br&gt;
Thank you so much in advance!&lt;br&gt;
&lt;br&gt;
################################################&lt;br&gt;
P.S.&lt;br&gt;
Bellow is a full version of my code for the total variation reconstruction:&lt;br&gt;
&lt;br&gt;
for kk = 1:n_iter&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tic&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% compute the fidelity term A'b - A'Ax&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;q = compAx(xi,s,options);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fidelity = b - q; % fidelity = A'b - A'Ax&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I_x = (xi(:,[2:nx nx])-xi(:,[1 1:nx-1]))/2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I_y = (xi([2:ny ny],:)-xi([1 1:ny-1],:))/2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I_xx = xi(:,[2:nx nx])+xi(:,[1 1:nx-1])-2*xi;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I_yy = xi([2:ny ny],:)+xi([1 1:ny-1],:)-2*xi;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dp = xi([2:ny ny],[2:nx nx])+xi([1 1:ny-1],[1 1:nx-1]);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dm = xi([1 1:ny-1],[2:nx nx])+xi([2:ny ny],[1 1:nx-1]);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I_xy = (Dp-Dm)/4;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% compute flow&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Num = I_xx.*(ep2+I_y.^2)-2*I_x.*I_y.*I_xy+I_yy.*(ep2+I_x.^2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Den = (ep2+I_x.^2+I_y.^2).^(3/2);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%% evolve image by options.tau&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xi=xi+options.tau*(Num./Den*lambda + fidelity);  &lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;toc&lt;br&gt;
end</description>
    </item>
  </channel>
</rss>

