【问题标题】:greycomatrix in python including NaN'spython中的greycomatrix,包括NaN
【发布时间】:2016-10-25 03:17:06
【问题描述】:

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

【问题讨论】:

  • 我不认为 python 本身有 greycomatrix。你的意思是skimage.feature.graycomatrix from sckit-image?如果没有,您目前从哪个图像处理库获取该函数?
  • 嗨 Warren,是的,我正在导入 skimage.feature.greycomatrix。因此,我想知道是否有办法在包含 NaN/不规则 ROI 的图像上使用这个库,或者是否有另一个可以使用的 graycomatrix 库。我记得读过matlab可以在计算中处理NaN。谢谢。

标签: python numpy image-processing glcm


【解决方案1】:

关于这个问题,skimage 中的 graycomatrix 库似乎不能处理 NaN 值或不规则形状,但只能进行“整个图像”分析。

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

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)))")

希望对以后遇到类似问题的人有所帮助。

干杯,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2019-05-27
    • 2014-02-26
    • 2018-03-01
    相关资源
    最近更新 更多