我无法计算纹理矩阵,反而得到了 RunTimeError
这个错误意味着在 C 扩展中计算矩阵时出现了问题。这个错误有几个可能的原因:
“解析数组参数错误。” 当提供给函数的图像或掩膜无法解释为 numpy 数组时,会抛出此错误。
“预期图像和掩膜具有相等的维数。” 当提供的图像和掩膜没有相同的维数时抛出。支持 N 维提取,但图像和掩膜仍需要在尺寸和维数上匹配。
“图像和掩膜的尺寸不匹配。” 这意味着掩膜数组的大小与图像数组的大小不匹配。因为 numpy 数组不包含关于物理世界变换的信息,所以不同大小的输入数组无法匹配。在将它们转换为相应的 numpy 数组进行特征计算之前,可以通过将 Mask 的 SimplITK-Image 对象重新采样到 Image 的几何形状来解决此错误。另请参阅图像和掩膜之间的几何形状不匹配。
“解析距离数组错误。” 如果 C 扩展无法解释提供的距离参数,则显示此错误。在设置中,距离参数应为元组或值列表。
“期望距离数组是一维的。” 再次提供的距离出错。提供的列表应该是一维的(即没有嵌套列表)。
“计算角度错误。” 这个错误意味着根据提供的距离生成角度时出现了问题。目前,只有当提供的距离小于 1 时才会发生这种情况。
“<Matrix> 中的元素数量将溢出索引变量!(…)” 当(展平的)输出数组的大小大于最大整数值(约 200 万)时,显示此错误。这通常是由于离散化后的 bin 数量过大,导致用于纹理计算的离散图像中灰度值范围过大。我们通常建议选择一个 bin 宽度,使离散化后的 bin 数量不超过 150-200。以 DEBUG 日志记录启用运行代码显示生成的 bin 数量,可能有助于了解矩阵有多大。
“无法初始化 <Matrix> 的输出数组。” 这意味着计算机无法为输出分配内存。这很可能是由于输出大小过大或可用内存过少。与上面类似,使用 DEBUG 日志记录运行,查看生成了多少个 bin(给出输出矩阵有多大的指示)。
“<Matrix>计算失败。” 这个错误意味着在计算矩阵本身时出现了问题。通常在尝试设置输出数组中超出范围的元素时会抛出此错误。当ROI内部的体素具有大于从Python调用C函数时提供的Ng参数的灰度值时,可能会发生这种情况。