您的位置:首页 > 其它

<影像组学pyradiomics教程> (五) pyradiomics模块--Image Processing and Filters(图像处理及滤波器)

2018-01-11 09:40 4639 查看
²  radiomics.imageoperations.getBinEdges(binwidth, parameterValues)
计算并返回灰度直方图

 

²  radiomics.imageoperations.binImage(binwidth, parameterMatrix,parameterMatrixCoordinates)
 

²  radiomics.imageoperations.generateAngles(size, **kwargs)
 

²  radiomics.imageoperations.checkMask(imageNode, maskNode, **kwargs)
Ø  检查Mask中的ROI的尺寸和维度是否符合要求,具体步骤如下:

1.        检查原始图像和Mask是否一致(例如尺寸、spacing、direction和origin),可使用geometryTolerance参数来调整tolerance,如果返回值为True,系统会检查Mask是否包含有效的ROI(即ROI区域必须小于图片的物理尺寸),如果上述检查没有问题,系统会将Mask重采样为原始图像的几何尺寸

2.        检查Mask中是否存在label

3.        检查ROI的维度是否符合定义的最小维度(使用minimumROIDimensions定义)

4.        检查ROI中体素数量是否符合定义的最小数量(使用minimumROISize定义)

 

Ø  该函数返回一个包含两个元素的元组,第一个元素是Mask的bounding box,第二个元素是重采样后的与原始图像具有同样几何尺寸的Mask

Ø  如果检测不通过,则报错,返回一个值为(None, None)的列表;如果检测通过,返回的bounding box将在cropToTumorMask()会用到。

Ø  Bounding box在(1)中计算,并在后续的检查中需要用到。Bounding box是使用SimpleITK.LabelStatisticsImageFilter()计算得到的,是一个拥有六个元素的元组:(L_x, U_x, L_y, U_y, L_z, U_z)

Ø  通过反复调用SimpleITK.LabelStatisticsImageFilter()来计算boundingbox,提升性能

Ø  参数:

²  minimumROIDimensions [1]:1-3范围内的整数

²  minimumROISize [None]:大于0的整数

Ø  如果第一步检测失败,通常可能原因有两个:

²  原始图像和Mask匹配,但是在origin、sapacing或者direction等方面存在轻微的差异。具体的错误原因存储在DEBUG级别的log文件中(如果使用了log),通过更改geometryTolerance和调用correctMask函数可以解决这个问题

²  虽然原始图像和Mask不匹配,但是Mask中包含的ROI包含在原始图像范围内。我们可以通过在特征提取前进行重采样来解决这个问题

²  radiomics.imageoperations.cropToTumorMask(imageNode, maskNode,boundingBox, padDistance=0
将原始图像和Mask裁剪成一个立方体的形状,其尺寸与Mask的ROI一致

Ø  输入参数:

n  BoundingBox:checkMask()返回的bounding box,用于确定裁剪后的图像大小。

n  Label:label的值

Ø  返回值:裁剪后的image和Mask(SimpleITK类型)

²  radiomics.imageoperations.resampleImage(imageNode, maskNode,resampledPixelSpacing, interpolator=3, label=1, padDistance=5)
Ø  将原始图像和Mask重采样为特定的spacing(默认使用线性差值)

Ø  Interpolator和resampledPixelSpacing参数可通过参数文件定义,或者作为关键字参数直接传递给特征抽取器

Ø  imageNode和maskNode时候SimpleITK对象,resampledPixelSpacing是输出图片spacing(三元素的元组)

Ø  如果spacing的某元素为0,则用原始Mask的对应维度的spacing替代它

Ø  重采样网格会和输入的原始图片进行对齐,并且只会对Mask的ROI对应的区域进行重采样

²  radiomics.imageoperations.normalizeImage(image, scale=1,outliers=None)
对图片进行归一化

²  radiomics.imageoperations.resegmentMask(imageNode, maskNode,resegmentRange, label=1)
对Mask进行重分割,移除灰度值在resegmentRange之外的体素

²  radiomics.imageoperations.getOriginalImage(inputImage, **kwargs)
获取原始图像

返回值:迭代器,指向的元素为一个三元素的Tuple,第一个元素为原始图像,第二个元素为字符串‘Oringinal’,第三个元素为参数字典

²  radiomics.imageoperations.getLoGImage(inputImage, **kwargs)
对原始图像应用LOG滤波器

输入参数:

²  Sigma:浮点数或者整数的列表,大于0。每一个元素代表一个滤波器。

²  radiomics.imageoperations.getWaveletImage(inputImage, **kwargs)
对原始图像应用小波滤波器

²  radiomics.imageoperations.getSquareImage(inputImage, **kwargs)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

²  radiomics.imageoperations.getSquareRootImage(inputImage, **kwargs)
²  radiomics.imageoperations.getLogarithmImage(inputImage, **kwargs)
²  radiomics.imageoperations.getExponentialImage(inputImage, **kwargs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐