程序 峰谷值 提取_医学影像组学特征值(Radiomics Features)提取之Pyradiomics(一)理论篇...
醫學影像組學特征值(Radiomics Features)提取之pyradiomics(一)理論篇
pyradiomics是一個開源的python軟件包,可以從醫學影像中提取出Radiomics影像組學特征,其支持2D和3D中的特征提取,在2.0版開始,pyradiomics還實現了基于voxel-based體素的提取,但提取需要時間較長,輸出為由參數映射的SimpleITK圖像,而不是針對每個特征的float值。
SimpleITK支持的所有圖像類型可以用作PyRadiomics的輸入。
一、安裝方法1.Install via pip通過pip安裝
確保Python已經安裝的環境下,安裝PyRadiomics:
python -m pip install pyradiomics2.Install via conda通過conda安裝
要在Conda環境下上安裝PyRadiomics:
conda install -c radiomics pyradiomics3.Install from source源代碼安裝
Pyradiomics支持從源代碼安裝,但由于附帶了計算紋理矩陣和某些形狀特征的C擴展,因此需要額外設置編譯器,比較復雜,感興趣可以去官網(https://pyradiomics.readthedocs.io/en/latest/installation.html#install-from-source)。4.Use 3D Slicer Radiomics extension使用3D Slicer Radiomics擴展
3D Slicer是用于醫學影像計算的免費開源平臺(http : //slicer.org),可以使用3D Slicer ExtensionManager來安裝Radiomics擴展程序,該擴展程序提供了一個針對pyradiomics庫的圖形用戶界面。使用3D Slicer中的pydiadomics的優勢在于,您可以查看圖像和分割,參考鏈接https://github.com/Radiomics/SlicerRadiomics。
5.Use pyradiomics Docker使用pyadiomics Docker
pyadiomics Docker支持從命令行使用pyradiomics,感興趣可以去官網(https://pyradiomics.readthedocs.io/en/latest/installation.html#use-pyradiomics-docker)。
二、Pyradiomics影像組學特征提取
在PyRadiomics中可以通過4種方式自定義特征提取:
1)指定用于提取特征的圖像類型(原始圖像或者基于變換的派生圖像)
2)指定要提取的特征類
3)指定一個設置文件來控制預處理、圖像變換的濾波器和特征類
4)指定voxel-based基于體素的特定設置,只有在使用PyRadiomics 進行體素提取生成特征圖時才需要1、圖像類型
進行影像組學特征提取的圖像既可以是原始圖像,也可以是經過濾波器處理的派生圖像。默認情況下只使用原始圖像,允許的圖像類型存儲在特征提取類實例_enabledImageTypes字典中,并且可以通過enableAllImageTypes(), disableAllImageTypes(), enableImageTypeByName()和 enableImageTypes()函數進行修改。
目前可用的圖像類型如下:
原始圖像:
1)Original:原始圖像
派生圖像:
2)Wavelet:小波濾波
3)LoG:高斯濾波器的拉普拉斯算子,是一種邊緣增強濾波器,強調的是灰度變化的區域,sigma參數定義要強調的紋理粗糙度,該值較低則強調較細的紋理,該值較高則強調較粗糙的紋理。
4)Square:平方,即獲取圖像強度值的平方
5)SquareRoot:平方根,即獲取圖像強度值的平方根
6)Logarithm:對數,獲取圖像絕對強度+1的對數
7)Exponential:指數,獲取圖像強度值的指數
8)Gradient:梯度,獲取圖像局部梯度的大小
9)LocalBinaryPattern2D:本地二進制模型(2D)
10)LocalBinaryPattern3D:本地二進制模型(3D)2、允許的特征類
從每個圖像類型中進行特征提取的特征類型,允許的特征類被存儲在特征提取類實例_enabledFeatures字典中,并且可以通過enableAllFeatures(), disableAllFeatures(), enableFeatureClassByName()和 enableFeaturesByName()函數進行修改。字典中的每個鍵值對代表一個啟用的特征類,其中特征類名稱為鍵,而啟用的特征名稱列表為值。如果值為None或空列表,則啟用該特征類中的所有特征。否則,僅指定某些特征則啟用該特征,默認情況下所有的特征類和特征都被啟動。
目前可用的特征類如下:
1)First Order Statistics(19features)一階統計量
通過常用的和基本的度量來描述由mask定義的圖像區域內的體素強度分布。
GetEnergyFeatureValue():能量,是圖像中體素值大小的度量,值越大意味著這些值的平方和越大。
GetTotalEnergyFeatureValue():總能量,是以體素的體積(以立方毫米為單位)為尺度的能量特征值。
GetEntropyFeatureValue():熵,定義圖像值的不確定性或者隨機性,是對圖像值進行編碼所需平均信息量對度量。
GetMinimunFeatureValue():最小特征值
Get10PercentileFeatureValue():第10%的特征值。
Get90PercentileFeatureValue():第90%的特征值
GetMaximunFeatureValue():最大特征值
GetMeanFeatureValue():平均特征值
GetMedianFeatureValue():中位數特征值
GetInterquartileRangeFeatureValue():四分位范圍
GetRangeFeatureValue():強度值范圍(最大值-最小值)
getMeanAbsoluteDeviationFeatureValue():平均絕對偏差
getRobustMeanAbsoluteDeviationFeatureValue():魯棒平均絕對偏差
getRootMeanSquaredFeatureValue():均方根
getStandardDeviationFeatureValue():標準偏差,衡量與平均值之間的差異或離散程度
getSkewnessFeatureValue():偏度,偏度測量關于平均值的值分布的不對稱性。根據尾巴在哪里加長和分布的質量集中在什么地方,該值可以為正或負。
GetKurtosisFeatureValue():峰度,峰度是圖像ROI中值分布的“峰值”度量。峰度越高,意味著分布的質量集中于尾部而不是均值。較低的峰度意味著相反的情況:分布的質量集中在接近均值的峰值處。
GetVarianceFeatureValue():方差,是每個強度值與平均值之間的平方距離的平均值。這是對均值分布分布的度量
getUniformityFeatureValue():均勻度,是每個強度值的平方和的量度。這是圖像陣列均勻性的一種度量,其中更大的均勻性意味著更大的均勻性或較小的離散強度值范圍。
2)Shape-based(3D)(16fetures)基于3D形狀
getMeshSurfaceFeatureValue():網格表面,由三角形網格定義,計算ROI的表面。
getPixelSurfaceFeatureValue():像素表面,由像素數量乘以每個像素的面積得到。
getPerimeterFeatureValue():周長。
getPerimeterSurfaceRatioFeatureValue():周長比,較低的值表示更緊湊的圓形。
getSphericityFeatureValue():球形度,表示與腫瘤區域具有相同面積的圓形的周長與腫瘤的周長之比。
getSphericalDisproportionFeatureValue():球形不均勻度,是球形度的倒數。
getMaximumDiameterFeatureValue():最大2D直徑。
getMajorAxisLengthFeatureValue():主軸長度。
getMinorAxisLengthFeatureValue():短軸長度。
getElongationFeatureValue():伸長率。
3)Shape-based(2D)(10features)基于2D形狀
getMeshVolumeFeatureValue():網格體積,由影像RIO的三角形網格計算得到。
getVoxelVolumeFeatureValue():體素體積,由體素的個數乘以一個體素的體積得到。
GetSurfaceAreaFeatureValue():表面積。
getSurfaceVolumeRatioFeatureValue():表面積與體積之比,較低的值表示更緊湊的球形形狀。
getSphericityFeatureValue():球形度,是腫瘤區域相對于球形度圓度度度量。
getCompactness1FeatureValue():緊湊度1,是衡量腫瘤形狀相對于球形的緊密程度的度量。
getCompactness2FeatureValue():緊湊度2,也是衡量腫瘤形狀相對于球體的緊密程度的度量,公式不同。
getSphericalDisproportionFeatureValue():球形不對稱,是腫瘤區域的表面積與具有相同體積的球體表面積的比值,是球形度的倒數。
getMaximum3DDiameterFeatureValue():最大3D直徑,表示腫瘤表面網格頂點之間的最大歐幾里得距離。
getMaximum2DDiameterSliceFeatureValue():最大2D直徑(切片),表示軸向平面中腫瘤表面網格頂點之間最大的歐幾里得距離。
getMaximum2DDiameterColumnFeatureValue():最大2D直徑(列),表示冠狀平面中腫瘤表面網格頂點之間最大的歐幾里得距離。
getMaximum2DDiameterRowFeatureValue():最大2D直徑(行),表示失狀平面中腫瘤表面網格頂點之間最大的歐幾里得距離。
getMajorAxisLengthFeatureValue():主軸長,表示包圍ROI的橢球的最大軸長。
getMinorAxisLengthFeatureValue():短軸長,表示包圍ROI的橢球的第二軸長。
getLeastAxisLengthFeatureValue():最小軸長,表示包圍ROI的橢球的最小軸長。
getElongationFeatureValue():伸長率,表示ROI形狀中兩個最大的主成分之間的關系。
getFlatnessFeatureValue():平面度,是表示ROI形狀中最大和最小主成分之間的關系。
4)Glcm:Gray Level Cooccurence Matrix(24features)灰度共生矩陣
定義了一些關于相關性、能量、對比、逆差、方差、概率、熵、平方和等信息,具體不展開介紹了(主要是實在難以翻譯),感興趣可以去官網看公式(https://pyradiomics.readthedocs.io/en/latest/features.html#radiomics.glcm.RadiomicsGLCM)。
GetAutocorrelationFeatureValue():自相關,是紋理精細度和粗糙度的量度
getJointAverageFeatureValue():
getClusterProminenceFeatureValue
getClusterShadeFeatureValue
getClusterTendencyFeatureValue
getContrastFeatureValue
getCorrelationFeatureValue
getDifferenceAverageFeatureValue
getDifferenceEntropyFeatureValue
getDifferenceVarianceFeatureValue
getDissimilarityFeatureValue
getJointEnergyFeatureValue
getJointEntropyFeatureValue
getHomogeneity1FeatureValue
getHomogeneity2FeatureValue
getImc1FeatureValue
getImc2FeatureValue
getIdmFeatureValue
getMCCFeatureValue
getIdmnFeatureValue
getIdFeatureValue
getIdnFeatureValue
getInverseVarianceFeatureValue
getMaximumProbabilityFeatureValue
getSumAverageFeatureValue
getSumVarianceFeatureValue
getSumEntropyFeatureValue
getSumSquaresFeatureValue
5)Glrlm:Gray Level Run Length Matrix(16features),灰度級運行長度矩陣
getShortRunEmphasisFeatureValue
getLongRunEmphasisFeatureValue
getGrayLevelNonUniformityFeatureValue
getGrayLevelNonUniformityNormalizedFeatureValue
getRunLengthNonUniformityFeatureValue
getRunLengthNonUniformityNormalizedFeatureValue
getRunPercentageFeatureValue
getGrayLevelVarianceFeatureValue
getRunVarianceFeatureValue
getRunEntropyFeatureValue
getLowGrayLevelRunEmphasisFeatureValue
getHighGrayLevelRunEmphasisFeatureValue
getShortRunLowGrayLevelEmphasisFeatureValue
getShortRunHighGrayLevelEmphasisFeatureValue
getLongRunLowGrayLevelEmphasisFeatureValue
getLongRunHighGrayLevelEmphasisFeatureValue
6)Glszm:Gray Level Size Zone Matrix(16features)
getSmallAreaEmphasisFeatureValue
getLargeAreaEmphasisFeatureValue
getGrayLevelNonUniformityFeatureValue
getGrayLevelNonUniformityNormalizedFeatureValue
getSizeZoneNonUniformityFeatureValue
getSizeZoneNonUniformityNormalizedFeatureValue
getZonePercentageFeatureValue
getGrayLevelVarianceFeatureValue
getZoneVarianceFeatureValue
getZoneEntropyFeatureValue
getLowGrayLevelZoneEmphasisFeatureValue
getHighGrayLevelZoneEmphasisFeatureValue
getSmallAreaLowGrayLevelEmphasisFeatureValue
getSmallAreaHighGrayLevelEmphasisFeatureValue
getLargeAreaLowGrayLevelEmphasisFeatureValue
getLargeAreaHighGrayLevelEmphasisFeatureValue
7)Gldm:Gray Level Dependence Matrix(14features)灰度依賴性矩陣
getSmallDependenceEmphasisFeatureValue
getLargeDependenceEmphasisFeatureValue
getGrayLevelNonUniformityFeatureValue
getGrayLevelNonUniformityNormalizedFeatureValue
getDependenceNonUniformityFeatureValue
getDependenceNonUniformityNormalizedFeatureValue
getGrayLevelVarianceFeatureValue
getDependenceVarianceFeatureValue
getDependenceEntropyFeatureValue
getDependencePercentageFeatureValue
getLowGrayLevelEmphasisFeatureValue
getHighGrayLevelEmphasisFeatureValue
getSmallDependenceLowGrayLevelEmphasisFeatureValue
getSmallDependenceHighGrayLevelEmphasisFeatureValue
getLargeDependenceLowGrayLevelEmphasisFeatureValue
getLargeDependenceHighGrayLevelEmphasisFeatureValue
8)Ngtdm:Neighbouring Gray Tone Difference Matrix(5features)
getCoarsenessFeatureValue
getContrastFeatureValue
getBusynessFeatureValue
getComplexityFeatureValue
getStrengthFeatureValue
除了形狀特征類外,其他特征都可以在原始圖像和派生圖像上進行計算,注意上面的特征不是都需要的,有一些特征具有相關性。3、特征提取設置
1)Image Normalization圖像歸一化
Normalize:當設置為True時,對圖像進行歸一化處理
normalizeScale:對圖像進行歸一化處理的比例
RemoveOutliers:從圖像中刪除的離群值
2)Resampling the image圖像重采樣
ResamplePixelSpacing:設置重采樣時的體素大小。
Interpolator:設置重采樣的差值方法,可選的值如下:
sitkNearestNeighbor(= 1)
sitkLinear(= 2)
sitkBSpline(= 3)
sitkGaussian(= 4)
sitkLabelGaussian(= 5)
sitkHammingWindowedSinc(= 6)
sitkCosineWindowedSinc(= 7)
sitkWelchWindowedSinc(= 8)
sitkLanczosWindowedSinc(= 9)
sitkBlackmanWindowedSinc(= 10)
padDistance:設置在裁剪腫瘤體時的體素補充數量。
總結
以上是生活随笔為你收集整理的程序 峰谷值 提取_医学影像组学特征值(Radiomics Features)提取之Pyradiomics(一)理论篇...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爬虫404如何跳过_网站改版之后的一次思
- 下一篇: 数字图像处理技术详解程序_安装地暖施工程