๋ฒ๊ทธ ์ค๋ช
pyradiomics๋ Indexerror์ ๋ํด ์๋ํ์ง ์์์ต๋๋ค.
PyRadiomics ๊ตฌ์ฑ
PyRadiomincs ์ํํธ์จ์ด๋ Mac ํฐ๋ฏธ๋์์ python -m pip install pyradiomics
๋ฅผ ์คํํ์ฌ ์ค์น๋์์ต๋๋ค.
Mac ํฐ๋ฏธ๋ ์ฑ์ ์
๋ ฅ :
pyradiomics brain1_image.nrrd brain1_label.nrrd
๊ทธ๋ฐ ๋ค์ Indexerror๋ก ์ธํด ์ค์ง๋์์ต๋๋ค.
PyRadiomics ๋ก๊ทธ ํ์ผ
์ญ ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง) :
_extractFeatures์์๋ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/scripts/segment.py", 70 ํ ํ์ผ
feature_vector.update(extractor.execute(imageFilepath, maskFilepath, label, label_channel))
ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/featureextractor.py", 327 ํ, ์คํ ์ค
featureVector.update(self.computeFeatures(inputImage, inputMask, imageTypeName, **inputKwargs))
computeFeatures์ ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/featureextractor.py", 514 ํ
for (featureName, featureValue) in six.iteritems(featureClass.execute()):
ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/base.py", 185 ํ, ์คํ ์ค
self._calculateSegment()
_calculateSegment์ ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/base.py", 222 ํ
for success, featureName, featureValue in self._calculateFeatures():
_calculateFeatures์ ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/base.py", 229 ํ
self._initCalculation(voxelCoordinates)
_initCalculation์ ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/glcm.py", 111 ํ
self.P_glcm = self._calculateMatrix(voxelCoordinates)
_calculateMatrix์ ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/glcm.py", 148 ํ
P_glcm = numpy.delete(P_glcm, emptyGrayLevels - 1, 1)
ํ์ผ "<__ array_function__ i ="51 ">", 6 ํ, ์ญ์ ์ค
ํ์ผ "/Users/adm/test7/venv/lib/python3.7/site-packages/numpy/lib/function_base.py", 4406 ํ, ์ญ์ ์ค
keep[obj,] = False
IndexError : ์ธ๋ฑ์ค๋ก ์ฌ์ฉ๋๋ ๋ฐฐ์ด์ ์ ์ (๋๋ ๋ถ์ธ) ์ ํ์ด์ด์ผํฉ๋๋ค.
์ฌ๋ก -1_ ์ด๋ฏธ์ง : /Users/adm/test7/pyradiomics-master/data/brain1_image.nrrd
Case-1_Mask : /Users/adm/test7/pyradiomics-master/data/brain1_label.nrrd
๋ฒ์ (๋ค์ ์ ๋ณด๋ฅผ ์์ฑํ์ญ์์ค) :
์ถ๊ฐ ์ปจํ
์คํธ
๋ด ์ฐฝ์์ ์คํํ ๋ ์ฌ์ ํ ๋์ผํ ์ค๋ฅ๊ฐ๋ณด๊ณ ๋์์ต๋๋ค.
featureVector = extractor.execute(imageName, maskName)
์ด ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์กฐ๊ธ ๋ ์กฐ์ฌํด์ผํ์ง๋ง ์ด์ฐํ๋ ์ ์ ๋ฐ์ดํฐ ์ ํ์ผ๋ก ์บ์คํธ๋์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค (์ง์๋ก ํ์ ์์ค์ ์ฌ์ฉํด์ผ ํจ). ๋๋ ๊ทธ๊ฒ์ ์ผ๋ง ์ ์ ๋ฐ๊ฟจ๋ค๊ณ ์๊ฐํ์ง๋ง ์ฐพ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์์ ๊ธธ์ ์์์ ์๋ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ์ต๋ํ ๋นจ๋ฆฌ ๊ณ ์น๋ ค๊ณ ๋
ธ๋ ฅํ ๊ฒ์
๋๋ค (์ ๋ง ๊ฐ๋จํ ์์ ์
๋๋ค). ์ง์ ํด๋ณด๊ณ ์ถ๋ค๋ฉด imageoperations.binImage
๋ก ์ด๋ํ์ฌ 158 ํ ( return discretizedParameterMatrix, binEdges
)์ ( return discretizedParameterMatrix.astype('int'), binEdges
์ ๋ง ๊ณ ๋ง์! ์ด์ ์๋ํฉ๋๋ค ~
์ํ๊น๊ฒ๋ ์ ๊ณต ํ ์๋ฃจ์
์ด ์ธ๊ธ ๋ ๋ฌธ์ ๋ฅผ ํญ์ ํด๊ฒฐํ๋ ๊ฒ์ ์๋๋๋ค. ์ด์ฐํ ๋ ์ด๋ฏธ์ง์ ๊ฐ๋ฅํ ๋ชจ๋ ๊ทธ๋ ์ด ๋ ๋ฒจ์ด์๋ โโ๊ฒฝ์ฐ imageoperations ์คํฌ๋ฆฝํธ์ discretizedParameterMatrix
๋ณ์์ glcm ์คํฌ๋ฆฝํธ์ emptyGrayLevels
๋ณ์๋ ๋น ๋ชฉ๋ก์ด๋ฉ๋๋ค. ์ธ๊ธ ๋ ์ค๋ฅ๋ ๋ฐ์ํฉ๋๋ค. ๋จ์ํ ์ ํ์ ๋ณ๊ฒฝํด๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ต๋๋ค.
ํด๊ฒฐ์ฑ
์ glcm ์คํฌ๋ฆฝํธ์์ P_glcm = numpy.delete(P_glcm, emptyGrayLevels - 1, 1)
์ค ์์ ์กฐ๊ฑด๋ถ if list(emptyGrayLevels):
๋ฅผ ์ฝ์
ํ๋ ๊ฒ์
๋๋ค. ์ด ๋ฌธ์ ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ทธ๋ ์ด ๋ ๋ฒจ ๋งคํธ๋ฆญ์ค ๊ธฐ๋ฐ ๊ธฐ๋ฅ (์ : glrlm, gldm)์์๋ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์์ด ์์ ์ฌํญ์ ๋ชจ๋ ์คํฌ๋ฆฝํธ์์ ๊ตฌํ๋์ด์ผํฉ๋๋ค.
์ถ๊ฐ ํ์ธ์ ์ถ๊ฐํ๊ธฐ ์ํด ๋ ๋ฒ์งธ ์ ๋ฐ์ดํธ๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค.
# 602์ ์ํด ํด๊ฒฐ๋์์ต๋๋ค.