odl icon indicating copy to clipboard operation
odl copied to clipboard

Analytic brain phantom that is realistic

Open ozanoktem opened this issue 5 years ago • 9 comments

Michel Unser's group at EPFL has developed a brain phantom that is realistic yet analytic, see this link for the paper. The work is mainly motivated by MRI, but the phantom should be useable also for other imaging modalities. It serves as a good compromise between simplistic Sheep-Logan type of phantoms that are given analytically and phantoms obtained from reconstruction using high quality data, which are realistic but lack analytic expression.

We should consider adding the analytic brain phantom to the ODL phantom library. This relates to issue #143 which is closed.

ozanoktem avatar Jul 24 '19 07:07 ozanoktem

I agree this looks like a reasonable phantom to have. Do you know if it is fully analytic or would we need to store data somewhere?

adler-j avatar Jul 24 '19 13:07 adler-j

If I recall correctly that phantom is fully analytic, but the computation of it is fairly involved an likely not trivial to port from Matlab to Python. At least, I considered it at one point a while back, but determined I did not have the time to dedicate to it. I also don't recall what the license terms are (if specified).

grlee77 avatar Jul 24 '19 14:07 grlee77

I also tried porting the whole FORBILD library of phantoms a while back but that too turned out to be a major hassle.

http://www.imp.uni-erlangen.de/phantoms/

adler-j avatar Jul 25 '19 10:07 adler-j

A slightly hacky but feasible way would be to store the provided SVG file (only ~231 lines, 36 kB) and rasterize it using e.g. pycairo. In the provided Matlab code the features are also given as Bezier curves, so the SVG should be 100 % equivalent.

kohr-h avatar Aug 12 '19 12:08 kohr-h

Regarding the SVG approach, I think it is reasonable (36 kB is OK) and rasterizing allows us to do any resolution. With that said, it seems remarkably hard to do in a platform independent way, see e.g. my old stack overflow question which is still not answered: https://stackoverflow.com/questions/45038714/convert-svg-to-numpy-array

The problem is basically that pycairo is actually quite badly supported and is basically linux only unless users want to compile it by themselves on windows (and you really don't).

adler-j avatar Aug 15 '19 10:08 adler-j

The problem is basically that pycairo is actually quite badly supported and is basically linux only unless users want to compile it by themselves on windows (and you really don't).

There are conda packages though (Linux, OSX and Windows).

kohr-h avatar Aug 15 '19 21:08 kohr-h

There are conda packages though (Linux, OSX and Windows).

Yes, but it depend on cairo which does not have a conda package, see e.g.

https://pycairo.readthedocs.io/en/latest/getting_started.html

Unless something has changed lately.

adler-j avatar Aug 16 '19 14:08 adler-j

It does, see here. The oldest Windows version is 1 year and 9 months old.

kohr-h avatar Aug 16 '19 17:08 kohr-h

So fixed 4 months after my SO question then :D Ok then cairo should work just fine.

adler-j avatar Aug 17 '19 08:08 adler-j