oncoray / mirp

Medical Image Radiomics Processor
https://oncoray.github.io/mirp/
European Union Public License 1.2
38 stars 11 forks source link

Make features objects #96

Open alexzwanenburg opened 2 weeks ago

alexzwanenburg commented 2 weeks ago

Proposal

MIRP currently uses a functional approach to computing features. Features are computed by sequentially from feature family-based methods. While this works for many applications, it has some drawbacks:

The proposal is to switch the current functional feature computation backend to a generator-based one.

Implementation

Features are computed from an image and a mask. These are pre-processed up to the point where feature computation takes place. Some features (e.g. statistical features) do not require additional processing, but others, e.g. texture features, do. This may involve image discretisation and computation of texture matrices.

The simplest approach is to have each feature as its own object class with methods for additional processing and computation. However, because these additional processing steps generally take the most time, their results should be shared between features to prevent degrading performance. What options do we have to achieve this?

alexzwanenburg commented 1 week ago

I have been working on option 1, build the framework, and created an implementation for run length-matrix features. This seems to work quite well.

alexzwanenburg commented 3 days ago

To do: