imagej / imagej-ops

ImageJ Ops: "Write once, run anywhere" image processing
https://imagej.net/libs/imagej-ops
BSD 2-Clause "Simplified" License
89 stars 42 forks source link

Add descriptors/features framework #67

Closed ctrueden closed 9 years ago

ctrueden commented 10 years ago

This includes Haralick, Zernike, FirstOrderStatistics, Moments, Shape...

Current work can be seen on the increasingly ill-named feature-service branch.

ctrueden commented 9 years ago

See also ImageJ Trac ticket #1978 for an earlier incarnation of this sort of effort.

IdealOutage commented 9 years ago

Here a more detailed list on what features is already implemented or needs to be implemented. I'm updating this list as we progress. The work is done on the feature-service branch.

Features

1. First Order Statistics

Responsible: @danielseebacher

3. Geometric Features

Responsible: @danielseebacher

4. Image Moments 2D

Responsible: @angrauma

5. Tamura Texture Features

6. Zernike Features

7. Shape Features

8. Haralick Features

9. Local Binary Patterns

3D: http://lmb.informatik.uni-freiburg.de/papers/download/fe_bu_icpr08.pdf

10. 3D Geometric Features

Responsible: @tibuch

11. 3D Shape Features

Responsible: @tibuch

12. Gabor Texture Features

Responsible:

13. Image Moments 3D

Responsible:

dietzc commented 9 years ago

we may not forget to offer ops which respect the calibration of the image. In 2D these are especially the geometric features (area for example). In 3D, these are geometric and also (potentially) intensity based features. The calibration of an image can be passed as double[] array. Basically there are two ways to integrate respect calibration in a feature:

dietzc commented 9 years ago

TODO after reviewing with @ctrueden

dietzc commented 9 years ago

see https://github.com/imagej/imagej-ops/tree/outputop-service

ctrueden commented 9 years ago

@angrauma A little bird told me that Zernike 3D is also working! Anything else that can be checked off the list above?

dietzc commented 9 years ago

@ctrueden haralick 3D, zernike 3D not yet :-) Anyway, @DanielSeebacher, @angrauma: could you add some a marker to the features you are currently working on?

ctrueden commented 9 years ago

@dietzc Oh yeah, right! And it is checked, so I am happy.

LeeKamentsky commented 9 years ago

3D zernike? How are you planning to generalize to multiple dimensions? I found this paper here: http://cg.cs.uni-bonn.de/aigaion2root/attachments/novotni-2003-3d.pdf which creates a 3D Zernike-like basis set on top of spherical harmonics (think of electron orbitals if you want to get an idea). So inquiring minds want to know exactly what you guys might have planned.

angrauma commented 9 years ago

@LeeKamentsky Yes, this is exactly the paper I would like to be oriented towards when implementing 3D Zernike moments. I also want to take a closer look at this paper: http://www.emis.de/journals/HOA/MPE/Volume2012/353406.pdf. But it seems the idea is very close to the other paper. So it is the plan to realize the 3D Zernike descriptor as an extension of spherical harmonics based descriptors, as it is explained in the paper of Novotni and Klein, but I have not started yet implementing it, so I can not say how I will do it exactly, at the moment.

dietzc commented 9 years ago

another thing we might to work on in the future are quality metrics for images:

e.g. see: http://rsb.info.nih.gov/ij/plugins/mssim-index.html

maierl commented 9 years ago

I would love to see the 3D features! all my data will be in 3D, but my analysis is mostly yet limited to 2D.

dietzc commented 9 years ago

@angrauma (local binary patterns, tamura, 2D Shape etc) / @tibuch (3D geometry, shape etc.) please add the remaining / missing features until September.

ctrueden commented 9 years ago

Status update on this issue?

dietzc commented 9 years ago

I'm implementing the CachedOpEnviroment and FeatureSet these days. The existing implementations of features can then be used. I will clean-up all the branches and open PRs over the next 24h. I will update the issue then.

ctrueden commented 9 years ago

@dietzc Great, thanks!

dietzc commented 9 years ago

... approaching ;-) I will close this issue in favour of issues for the missing feature implementations soon.

dietzc commented 9 years ago

closed in favour of several other issues I just created.