dask_image.ndinterp 包

dask_image.ndinterp 包

dask_image.ndinterp.affine_transform(image, matrix, offset=0.0, output_shape=None, order=1, output_chunks=None, **kwargs)[source]

使用 Dask 应用仿射变换。对于每个输出块,仅处理包含图像相关部分的切片。分块处理使用 ndimage.affine_transformcupyx.scipy.ndimage.affine_transform 执行,具体取决于输入类型。

注意

ndimage.affine_transformation 的区别: - 当前不支持预滤波

(在插值 order > 1 时会影响输出)

  • 默认阶数是 1

  • 不支持 'reflect', 'mirror' 和 'wrap' 模式

参数与 ndimage.affine_transformation 相同,除了 output_chunks

参数
  • image (array_like (Numpy Array, Cupy Array, Dask Array...)) – 图像数组。

  • matrix (array (ndim,), (ndim, ndim), (ndim, ndim+1) or (ndim+1, ndim+1)) – 变换矩阵。

  • offset (floatsequence, 可选) – 应用变换时数组的偏移量。如果为浮点数,offset 对每个轴相同。如果为序列,offset 应包含每个轴的一个值。

  • output_shape (tuple of ints, 可选) – 要返回的数组的形状。

  • order (int, 可选) – 样条插值的阶数。请注意,对于 order>1,scipy 的 affine_transform 会应用预滤波,此实现尚不支持并跳过该步骤。

  • output_chunks (tuple of ints, 可选) – 输出 Dask 数组的块形状。

返回值

affine_transform – 表示变换后输出的 dask 数组

返回类型

Dask Array

dask_image.ndinterp.rotate(input_arr, angle, axes=(1, 0), reshape=True, output_chunks=None, **kwargs)[source]

使用 Dask 旋转数组。

使用指定的阶数样条插值,在由 axes 参数给定的两个轴定义的平面中旋转数组。

分块处理使用 dask_image.ndinterp.affine_transform 执行,ndimage 函数支持的其他参数可以作为关键字参数传递。

注意

ndimage.rotate 的区别: - 当前不支持预滤波

(在插值 order > 1 时会影响输出)

  • 默认阶数是 1

  • 不支持 'reflect', 'mirror' 和 'wrap' 模式

参数与 ndimage.rotate 相同,除了 - output (此处不存在) - output_chunks (在 dask 数组上下文中相关)

参数
  • input_arr (array_like (Numpy Array, Cupy Array, Dask Array...)) – 图像数组。

  • angle (float) – 旋转角度,以度为单位。

  • axes (tuple of 2 ints, 可选) – 定义旋转平面的两个轴。默认为前两个轴。

  • reshape (bool, 可选) – 如果 reshape 为真,输出形状将进行调整,以便输入数组完全包含在输出中。默认为 True。

  • output_chunks (tuple of ints, 可选) – 输出 Dask 数组的块形状。

  • **kwargs (dict, 可选) – 附加的关键字参数将传递给 dask_image.ndinterp.affine_transform

返回值

rotate – 表示旋转后输入的 dask 数组。

返回类型

Dask Array

示例

>>> from scipy import ndimage, misc
>>> import matplotlib.pyplot as plt
>>> import dask.array as da
>>> fig = plt.figure(figsize=(10, 3))
>>> ax1, ax2, ax3 = fig.subplots(1, 3)
>>> img = da.from_array(misc.ascent(),chunks=(64,64))
>>> img_45 = dask_image.ndinterp.rotate(img, 45, reshape=False)
>>> full_img_45 = dask_image.ndinterp.rotate(img, 45, reshape=True)
>>> ax1.imshow(img, cmap='gray')
>>> ax1.set_axis_off()
>>> ax2.imshow(img_45, cmap='gray')
>>> ax2.set_axis_off()
>>> ax3.imshow(full_img_45, cmap='gray')
>>> ax3.set_axis_off()
>>> fig.set_tight_layout(True)
>>> plt.show()
>>> print(img.shape)
(512, 512)
>>> print(img_45.shape)
(512, 512)
>>> print(full_img_45.shape)
(724, 724)
dask_image.ndinterp.spline_filter(image, order=3, output=<class 'numpy.float64'>, mode='mirror', output_chunks=None, *, depth=None, **kwargs)[source]
dask_image.ndinterp.spline_filter1d(image, order=3, axis=-1, output=<class 'numpy.float64'>, mode='mirror', output_chunks=None, *, depth=None, **kwargs)[source]