【影像组学入门百问】#51----#57

#51-常见问题:我无法计算纹理矩阵,反而得到了 RunTimeError

我无法计算纹理矩阵,反而得到了 RunTimeError

这个错误意味着在 C 扩展中计算矩阵时出现了问题。这个错误有几个可能的原因:

“解析数组参数错误。” 当提供给函数的图像或掩膜无法解释为 numpy 数组时,会抛出此错误。

“预期图像和掩膜具有相等的维数。” 当提供的图像和掩膜没有相同的维数时抛出。支持 N 维提取,但图像和掩膜仍需要在尺寸和维数上匹配。

“图像和掩膜的尺寸不匹配。” 这意味着掩膜数组的大小与图像数组的大小不匹配。因为 numpy 数组不包含关于物理世界变换的信息,所以不同大小的输入数组无法匹配。在将它们转换为相应的 numpy 数组进行特征计算之前,可以通过将 Mask 的 SimplITK-Image 对象重新采样到 Image 的几何形状来解决此错误。另请参阅图像和掩膜之间的几何形状不匹配。

“解析距离数组错误。” 如果 C 扩展无法解释提供的距离参数,则显示此错误。在设置中,距离参数应为元组或值列表。

“期望距离数组是一维的。” 再次提供的距离出错。提供的列表应该是一维的(即没有嵌套列表)。

“计算角度错误。” 这个错误意味着根据提供的距离生成角度时出现了问题。目前,只有当提供的距离小于 1 时才会发生这种情况。

“中的元素数量将溢出索引变量!(…)” 当(展平的)输出数组的大小大于最大整数值(约 200 万)时,显示此错误。这通常是由于离散化后的 bin 数量过大,导致用于纹理计算的离散图像中灰度值范围过大。我们通常建议选择一个 bin 宽度,使离散化后的 bin 数量不超过 150-200。以 DEBUG 日志记录启用运行代码显示生成的 bin 数量,可能有助于了解矩阵有多大。

“无法初始化的输出数组。” 这意味着计算机无法为输出分配内存。这很可能是由于输出大小过大或可用内存过少。与上面类似,使用 DEBUG 日志记录运行,查看生成了多少个 bin(给出输出矩阵有多大的指示)。

“计算失败。” 这个错误意味着在计算矩阵本身时出现了问题。通常在尝试设置输出数组中超出范围的元素时会抛出此错误。当ROI内部的体素具有大于从Python调用C函数时提供的Ng参数的灰度值时,可能会发生这种情况。

#52-常见问题:我可以提取特征,但许多特征是NaN、0或1。发生了什么?

有可能分割区域太小,无法提取有效的纹理。检查输出中附加信息部分的VoxelNum值。这是预处理后ROI中的体素数量,因此是用于特征计算的体素数量。

另一个问题可能是离散化后的灰度值过多或过少。您可以通过将ROI中的灰度值范围(一阶特征)与binWidth参数的值进行比较来检查这一点。更多的bins可以捕捉较小的灰度值差异,但过多的bins(与体素数量相比)将导致纹理矩阵中的概率较低,从而产生非信息性特征。离散化灰度值的理想数量没有确切答案,这可能因模态而异。一项研究[2]评估了PET中的bin数量,发现在16-128个bin的范围内,纹理特征并无显著差异。

#53-我在输出中缺少特征。如何查看出了什么问题?

如果特征计算或滤波器应用失败,会记录一条警告。如果您想了解工具箱内部发生了什么,PyRadiomics提供了丰富的调试日志。您可以启用将其打印到输出或存储在单独的日志文件中。输出受radiomics.setVerbosity()控制,可以通过radiomics.logger访问PyRadiomics记录器。另请参阅此处以及存储库中包含的示例,了解如何设置日志记录。

图片
#54-在Jupyter笔记本中找不到Radiomics

模块

我安装了PyRadiomics,但是当我运行jupyter notebook时,我得到 ImportError: No module named radiomics

这可能有两个原因:

从存储库安装PyRadiomics时,您的Python路径变量将被更新以使Python能够找到该包。然而,这个值仅在重新启动命令行窗口时更新。如果在安装过程中运行了jupyter notebook,您首先需要重新启动它。您的计算机上可以同时安装多个版本的Python。请确保PyRadiomics安装在您在Jupyter notebook中使用的相同版本上。

#55-PyRadiomics与哪些Python版本兼容?

PyRadiomics与Python 3兼容。在PyRadiomics 3.0版本中停止支持Python 2,但保留了兼容代码。但是,自动化测试仅使用python 3.5、3.6和3.7(64位架构)。不支持Python < 2.6。其他Python版本可能与PyRadiomics兼容,但这不是主动测试的,因此不能保证正常工作。预构建的Wheels仅适用于经过测试的Python版本(3.5、3.6和3.7)。

#56-一份新版本的PyRadiomics已经发布了!我该去哪里查看更新了什么?

每次发布新版本时,都会在发布声明中包含更新日志。在版本发布之间,更改不会被明确记录,但所有重要更改都是使用拉取请求实现的。检查合并的拉取请求以获取最新更改。

#57-如果研究中使用了PyRadiomics,应该怎么引用文献?

If you publish any work which uses this package, please cite the following publication: van Griethuysen, J. J. M., Fedorov, A., Parmar, C., Hosny, A., Aucoin, N., Narayan, V., Beets-Tan, R. G. H., Fillon-Robin, J. C., Pieper, S., Aerts, H. J. W. L. (2017). Computational Radiomics System to Decode the Radiographic Phenotype. Cancer Research, 77(21), e104–e107. https://doi.org/10.1158/0008-5472.CAN-17-0339 https://doi.org/10.1158/0008-5472.CAN-17-0339_

你可能感兴趣的:(入门百问)