Positivity constraint and deconvolving data with negative values

5 views (last 30 days)
I have a 3-D (150x150x150 matrix) set of signal data that has values with range from -3000 to 5000 (integers).
I am attempting to deconvolve this data with a known PSF (type double) using the Lucy-Richardson methods built in MATLAB. i.e. basically I am doing a 3D deconvolution.
The issue is that the deconvlucy function has an inherent positivity constraint... i.e. the algorithm ends up clipping any negative values to zero in the resulting deconvolved results set. This would be ok if my data did not have negative values (such as in an RGB image), but this positivity constraint is a very significant corruption of my data. The negative values in my data have real world meaning, and it does not make sense to have the positivity constraint applied.
Please let me know if you know a work around this. I can just add a large DC shift to my signal (so that it all becomes positive), deconvolve, and then subtract the DC shift again, but I rather avoid this non-elegant solution... also because I am not sure if adding a DC shift actually impacts the deconvolution or not.

Answers (2)

Image Analyst
Image Analyst on 13 Jul 2012
A 150x150x150 array is a 3D array, not a 4D array. Try casting both your input array and PSF to single or double and see if that works.
  1 Comment
Am
Am on 13 Jul 2012
Edited: Am on 13 Jul 2012
Yes, thank you for the correction (edited above). It is a 3D array.
I did try casting to single and double as you suggested, but the results are the same. All negative values of the signals are still pinned to zero.
This is a strange issue, because earlier when I was doing the same deconvolution on a 2-D slice of the same data, deconvlucy did treat all the data properly and would not apply the positivity contraint.
I am at a loss.

Sign in to comment.


Bjorn Gustavsson
Bjorn Gustavsson on 13 Jul 2012
Edited: Bjorn Gustavsson on 13 Jul 2012
Well, why not just try to add slightly different offsets to your data and see if the deconvolution is invariant to that. And if you have negative values maybe you'd be better off with one of the other deconvolution functions - they shouldn't differ all that much.
And the LR-deconvolution is, as far as I understood it, designed with data with positivity implicitly assumed (maybe even with Poisson counting statistics).
  1 Comment
Am
Am on 13 Jul 2012
Thank you for the suggestion. I have tried this previously, and it showed that my data is somewhat variant to the offset, although by quite negligible amounts.
What still perplexes me is why deconvlucy applied on a 2D slice of my data can predictably deal with the negative values, but when applied on the 3D set insists on applying the positivity constraint.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!