skimage rescale_intensity函数

函数名:

 rescale_intensity

语法:

 rescale_intensity(image, in_range=’image’, out_range=’dtype’)

类型:

 skimage.exposure.exposure 模块中的函数,在对图像进行拉伸或者伸缩强度水平后返回修改后的图像,

输入图像和输出图像的强度范围分别由in_range 和out_range指定,用来拉伸或缩小输入图像的强度范围。

输入参数:
  • 参数名:image
  • 类型:array
  • 说明:输入图像

  • 参数名:in_range, out_range
  • 类型:str or 2-tuple
  • 说明:输入图像和输出图像的最小和最大强度值。下面列举了这个参数的可能值。
参数值名说明
image使用图像的最小值/最大值作为强度范围
dtype使用图像数据类型的最小值/最大值作为强度范围
dtype-name使用基于所需的数据类型范围作为强度范围,必须是DTYPE_RANGE中可用的关键词
2-tuple使用range_values作为显式的最小/最大强度
输出参数:
  • 参数名:out
  • 类型:array
  • 说明: 图像阵列调整后的强度。该图像与输入图像是相同的数据类型。
例子:

 默认情况下,输入图像的最小/最大强度被拉伸到图像数据类型允许的范围内。此外,in_range默认为‘image’,out_range默认为’dtype’

>>> image = np.array([51, 102, 153], dtype=np.uint8)
>>> rescale_intensity(image)
array([  0, 127, 255], dtype=uint8)

 很容易意外地将图像类型从uint8转换为float:

>>> 1.0 * image
array([  51.,  102.,  153.])

 使用rescale_intensity重新调节到浮点类型数据的适当范围

>>> image_float = 1.0 * image
>>> rescale_intensity(image_float)
array([ 0. ,  0.5,  1. ])

 使用in_range来保持原图像比较低的对比度

>>> rescale_intensity(image_float, in_range=(0, 255))
array([ 0.2,  0.4,  0.6])

 如果in_range的最小/最大值大于/小于图像强度的最大值/最小值,则强度水平将被剪辑,即,只保留im_range范围内的强度水平。

>>> image = np.array([-10, 0, 10], dtype=np.int8)
>>> rescale_intensity(image, out_range=(0, 127))
array([  0,  63, 127], dtype=int8)
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是一个用于对医学影像(volume)进行预处理的函数,主要用于对体积图像进行灰度值归一化操作,使得不同的体积图像在灰度值方面具有可比性,从而能够更好地进行后续的特征提取、分类等操作。 具体来说,该函数的输入参数包括体积图像(np_volume:np.ndarray)、体积图像的相对路径(relative_path:Path)以及一个日志记录器(logger: logging.Logger)。函数的输出是经过灰度值归一化处理的体积图像(np_volume)。 下面分别对每一行代码进行解释: 第一行引入了 argparse、logging、re、Process、Queue、Path、numpy 和 skimage.exposure、skimage.filters 等模块,这些模块在处理影像和日志记录等方面发挥了重要作用。 第三行定义了一个函数 normalize_intensity,接收输入 np_volume、relative_path 和 logger 三个参数。 第四行记录了日志,输出 "[processing start] " 字符串和相对路径。 第五至七行将输入的体积图像分成 32 个连续的切片构成一个数据堆栈。 第八至九行利用 skimage.exposure.histogram 函数获取切片中像素灰度值的直方图。thr = filters.threshold_otsu(stack[stack > 0]) 则使用 skimage.filters.threshold_otsu 函数来进行阈值分割,从而计算出灰度值区间中的阈值点。 第十至十二行则计算空气和土壤出现的灰度值峰值,从而能够进行灰度归一化操作。 第十三至十八行将体积图像(np_volume)强制类型转换为 int64 类型,并循环遍历每个切片。利用所有像素的灰度减去空气峰值后,再除以空气和土壤峰值的差,得出的结果即为像素的灰度值归一化结果。最后再将归一化操作后的像素重新转化为 uint8 类型。 第十九行记录了日志,输出 "[processing end] " 字符串和相对路径。 第二十行返回经过 rescale_intensity 函数处理之后的归一化体积图像(np_volume)。其中,rescale_intensityskimage.exposure 模块下面负责强度(灰度值)缩放的函数,输入参数包括归一化前的像素灰度值范围、以及归一化后的像素灰度值范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值