Skip to content

Commit

Permalink
added computation of wavelet/LoG filtered images for comparison with …
Browse files Browse the repository at this point in the history
…CERR
  • Loading branch information
rkpandya committed Apr 5, 2018
1 parent 423274d commit b684e6e
Showing 1 changed file with 50 additions and 34 deletions.
84 changes: 50 additions & 34 deletions Unit_Testing/tests_for_cerr/pyFeatureExtraction.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,72 +2,88 @@

from __future__ import print_function
import SimpleITK as sitk
import numpy
import scipy
#import matplotlib
import matlab
#import matlab.engine
import six
from radiomics import getTestCase, imageoperations, featureextractor, getTestCase
from radiomics.featureextractor import RadiomicsFeaturesExtractor


def extract(imagePath, maskPath, paramfilepath, *args):
def extract(imagePath, maskPath, paramfilepath, preprocessingFilter):
r"""
RKP - 3/20/2018
Wrapper class for calculation of a radiomics features using pyradiomics.
"""

# testWaveletFilter = False
# testLoGFilter = False

image, mask = RadiomicsFeaturesExtractor().loadImage(imagePath, maskPath)

if imagePath is None or maskPath is None: # Something went wrong, in this case PyRadiomics will also log an error
print('Error getting testcase!')
exit()

params = paramfilepath
extractor = featureextractor.RadiomicsFeaturesExtractor(params)


result = extractor.execute(imagePath, maskPath)
for key, val in six.iteritems(result):
strval = str(key)
if strval.find("-") == -1:
continue
else:
strval = strval.replace("-", "_")
result[strval] = result.pop(key)


if len(args) == 1 and args[0] == 'LoG':
#if wavelet or LoG specified in argument, return only the preprocessed image arrays
if preprocessingFilter == 'LoG':
resultdict = {}
for decompositionImage, decompositionName, inputKwargs in imageoperations.getLoGImage(image):
resultArray = sitk.GetArrayFromImage(decompositionImage)
extractor = featureextractor.RadiomicsFeaturesExtractor(params)
result = extractor.execute(imagePath, maskPath)
sigmaValues = [1.0]
for logImage, imageTypeName, inputKwargs in imageoperations.getLoGImage(image, sigma=sigmaValues):
resultArray = sitk.GetArrayFromImage(logImage)
resultArray = matlab.double(resultArray.tolist())
# imgName = decompositionName + '.nrrd'
# sitk.WriteImage(decompositionImage, imgName)
resultdict[decompositionName] = resultArray
return resultdict
#resultdict[decompositionName] = resultArray
return resultArray

elif len(args) == 1 and args[0] == 'wavelet':
elif preprocessingFilter == 'wavelet':
resultdict = {}
for decompositionImage, decompositionName, inputKwargs in imageoperations.getWaveletImage(image):
for decompositionImage in imageoperations.getWaveletImage(image):
resultArray=sitk.GetArrayFromImage(decompositionImage)
# imgName = decompositionName+'.nrrd'
# sitk.WriteImage(decompositionImage,imgName)
resultArray = matlab.double(resultArray.tolist())
resultdict[decompositionName] = resultArray
return resultdict
for key, val in six.iteritems(resultdict):
strval = str(key)
if strval.find("-") == -1:
continue
else:
strval = strval.replace("-", "_")
strval = strval.replace("-", "_")
resultdict[strval] = resultdict.pop(key)

else:
return resultdict
#perform feature extraction on original images and return the result
else:
extractor = featureextractor.RadiomicsFeaturesExtractor(params)

result = extractor.execute(imagePath, maskPath)
for key, val in six.iteritems(result):
strval = str(key)
if strval.find("-") == -1:
continue
else:
strval = strval.replace("-", "_")
strval = strval.replace("-", "_")
result[strval] = result.pop(key)
return result

#
# def main():
#
# imagePath = 'C:\\Users\\pandyar1\\AppData\\Local\\Temp\\scan.nrrd'
# maskPath = 'C:\\Users\\pandyar1\\AppData\\Local\\Temp\\mask.nrrd'
# paramFilePath = 'W:\\Rutu\\CERR-testing\\Unit_Testing\\tests_for_cerr\pyradParams.yaml'
# result = extract(imagePath, maskPath, paramFilePath)
#
#
# main()
def main():

imagePath = 'C:\\Users\\pandyar1\\AppData\\Local\\Temp\\scan.nrrd'
maskPath = 'C:\\Users\\pandyar1\\AppData\\Local\\Temp\\mask.nrrd'
paramFilePath = 'W:\\Rutu\\CERR-testing\\Unit_Testing\\tests_for_cerr\pyradParams.yaml'
result = extract(imagePath, maskPath, paramFilePath, 'LoG')


main()



Expand Down

0 comments on commit b684e6e

Please sign in to comment.