[scikit-image] Image deconvolution ...

Jerome Kieffer google at terre-adelie.org
Wed Nov 22 03:16:32 EST 2017


On Wed, 22 Nov 2017 12:40:50 +1100
Juan Nunez-Iglesias <jni.soma at gmail.com> wrote:

> Hi Jérôme,
> 
> Can you explain your problem more? You know A and x and want to find
> b? Is this an exact solution, or is Ax = b + err? SciPy’s
> sparse.linalg module is where you’ll find most of your answers, I
> think… If you want to *build* A from some description, you might find
> our homography example in Elegant SciPy useful:


Hi Juan,

Thanks for your help. Nice documentation on scipy.sparse I wish I had
it a couple of days ago.

Indeed I have spent a week in building the matrix
A using ray-tracing and now I believe it is almost correct now.

The idea is to consider some image sensor (in 2D) which absorb the
photon (X-ray) in volume (instead of the surface). So each pixel is considered
as a voxel and the sensor is a 2D array of voxels.
After this raytracing step, I know how much of a photon arriving in one
pixel contributes to the neighboring pixels, this is my matrix A,
(in CSR format).

"b" is of course the image I read from the detector, with all element
positive and I expect "x" to have all element positive as well.

I tried to search in scipy.sparse.linalg the method which would allow
me to retrieve "x" from "b". For now, the best I found is :
 
res = linalg.lsmr(A, b, damp=damp, x0=b)

When the damping factor is null or too small, I notice many wiggles
(with negative regions) near peaks. For now I try to adjust this damp factor
so that the minimum of x is positive but I am not confident on the
method.

-- 
Jérôme Kieffer
tel +33 476 882 445


More information about the scikit-image mailing list