-
Notifications
You must be signed in to change notification settings - Fork 102
Wavelet filter
CERR provides undecimated three dimensional Wavelet filtering as described in Aerts et al. The original image is decomposed into 8 components by directional low-pass (scaling) and high-pass (wavelet) filtering. The 8 images resulting from filtering along L-R, A-P and S-I directions are LLL, LLH, LHL, LHH, HLL, HLH, HHL, HHH; where L refers to scaling and H refers to wavelet filtering.
Note: This implementation requires access to Matlab's Wavelet toolbox.
Wavelets Supported wavelet types include Daybechies, Haar, Coiflets, FejerKorovkin, Symlets, Discrete meyer, Biorthogonal, and Reverse biorthogonal.
-
Required
Wavelets : 'db','haar','coif','fk','sym','dmey','bior','rbio'
Index : See wfilters.m for supported subtypes
Direction : ''HHH','LHH','HLH','HHL','LLH','LHL','HLL','LLL', 'All'
Normalize : 'Yes','No' -
Optional
Level : Decomposition levels (1,2,3,...). Default:1Warning: Levels other than 1 have not been tested for IBSI compatibility
Index : Seewfilters.m
for supported subtypes
Filters can be applied by manually creating a dictionary of parameters or passing them via JSON-format configuration files.
- Dictionaries are created using the syntax:
paramS.<parameter_name>.val = <value>;
where parameter_name
is one of the supported filter parameters listed above and value
, one of the associated arguments.
-
Sample filter configuration
The following settings can be used to (1) obtain the LLH decomposition using the daubechies-3 wavelet filter after cropping around the specified structure and padding by 3 voxel widths, and (2) calculate first-order statistics from the filtered image.
{
"structures": ["ROI"],
"imageType": {
"Wavelets": {
"Direction": "LLH",
"Wavelets":"db",
"Index": "3",
"Level": 1, #Warning: Levels other than 1 have not been tested for IBSI compliance.
}
},
"settings": {
"padding": {
"cropToMaskBounds": "yes",
"method": "mirror",
"size": [3,3,3]
},
"firstOrder": {
"offsetForEnergy": 0,
"binNumEntropy":64
}
}
}
Configurations are parsed and converted to parameter dictionaries using
paramFile = 'Path/to/config_file.json'
paramS = getRadiomicsParamTemplate(paramFile);
global planC
strNum = 1;
scanNum = []; % leave empty when passing structNum to automatically identify associated scan index
planC = generateTextureMapFromPlanC(planC,scanNum,strNum,paramS)
global planC
scanNum = 1;
strNum = 2;
featureS = calcGlobalRadiomicsFeatures(scanNum, structNum, paramS, planC);