Noncirculant deconvolution and a simple simulation

This weekend I’m going to be giving a talk at the SUNY Albany Open Source Festival.  The talk will focus on work I’ve done using open source for the ISBI Deconvolution Grand Challenge.  Part of the talk presents a simple simulation showing the benefits of noncirculant deconvolution.

The phantom I used for this test is here phantom_cropped.ome

The non-circulant convolution is here phantom_.image.ome

And the PSF is here psf.ome

The simulated image is simply two spheres in 3D space.  The spheres have an intensity of 100, the background has an intensity of 0.  A screen shot from ImageJ is shown below.

3d_spheres

 

The next step is to create a simulated blurred image by convolving with a PSF.

simulation
In this case we convolve then crop as to avoid wrap around.   Technical description is here.    Next we deconvolve.  Keep in mind the values outside our cropped section have been “lost”.   So we need a strategy to deal with the boundaries.  Here are 3 options.

1.  Do nothing.  This would mean that values near the edges will be calculated using values from the other side.  This is called the circulant model and can result in artifacts.

2.  Pad the image.  This adds pixels to the edges to reduce artifacts.  There are many strategies for padding, for example zero-pad (add zeros), periodic (repeat the signal), and reflection (mirror the signal).  Sometimes a decay function is used such that the extended signal slowly decays.

3.  Rederive the algorithm using a non-circulant model.  Technical description for rederivation of Richardson Lucy is described here.

Let’s look at some results in the form of line profiles taken through the z (depth) dimension of the images.

First the original image.  It is a very simple image.  Just 2 spheres in 3D space.  The spheres have a brightness of 100, the background 0.

original_profile

Next the convolved.  The spheres are now blurry.  Note the scale.  The signal is much dimmer as the light has spread out over 3D space.

blurred_profile

Next (below) is the deconvolution using the Richardson Lucy algorithm (using the implementation from the insight toolkit) with a boundary strategy called Neumann-zero-flux.  200 iterations were performed.  Again note the scale.  The sphere near the edge has only been restored to about 60% the original value.  Interestingly even the sphere near the center (where boundary effects aren’t as important) has only been restored to about 85% original value.

neumann_profile

Finally here is the result using 200 iterations of the noncirculant Richardson Lucy algorithm.  In this case the intensity level of the deconvolved sphere is very close (within 1%) of the true value.

noncirculant_decon_profile

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *