python中的greycomatrix包括NaN' s

时间:2016-10-25 03:17:06

标签: python numpy image-processing glcm

我从我选择的MRI图像中得到了一个不规则的感兴趣区域。我想使用skimage.feature.greycomatrix库对图像进行共现分析。但是,我的ROI形状不规则。将0保持在图像的numpy数组中将导致不正确的灰色共现分析,并且我已经使它们成为NaN&#39}。但是,greycomatrix无法使用NaN分析numpy数组。有没有人遇到过这个问题或有解决方案?

1 个答案:

答案 0 :(得分:1)

关于这个问题,看起来好像skimage中的greycomatrix库可以处理NaN值或不规则形状,但只能进行“全图像”分析。

为了解决这个问题,我选择在'R'中进行图像分析,将矩阵导出为csv,然后使用以下方法将其导入:

import rpy2.robjects.numpy2ri
from rpy2.robjects.packages import importr
import rpy2.robjects as ro
import pandas.rpy.common as com
import rpy2.robjects.numpy2ri
rpy2.robjects.numpy2ri.activate()
ro.r("Axial_Data <- read.csv('axial_slice_ROI.csv', header = FALSE)")
print(ro.r('max(Axial_Data, na.rm = TRUE)'))
ro.r('Axial_Data <- as.matrix(Axial_Data)')
ro.r("library(radiomics)")
ro.r("library('glcm')") 
ro.r("library('raster')")

## get first order statistics
ro.r("first_order <- calc_features(Slice_Data)")
## GLCM
ro.r("textures <- glcm(raster(Axial_Data), na_opt = 'any', shift=list(c(0,1),c(1,1), c(1,0), c(1,-1)))")

希望能帮助将来可能遇到类似问题的任何人。

干杯,