Skip to main content

一个库,可帮助您将图像分割成小的、可重叠的补丁,并将补丁合并回原始图像。

项目描述

修补

patchfy 可以根据给定的补丁单元大小将图像分割成小的可重叠补丁,并将补丁合并到原始图像中。

这个库提供了两个函数:patchify, unpatchify.

安装

pip install patchify

用法

将图像拆分为补丁

patchify(image_to_patch, patch_shape, step=1)

二维图像:

#This will split the image into small images of shape [3,3]
patches = patchify(image, (3, 3), step=1)

3D 图像:

#This will split the image into small images of shape [3,3,3]
patches = patchify(image, (3, 3, 3), step=1)

将补丁合并到原始图像中

unpatchify(patches_to_merge, merged_image_size)

reconstructed_image = unpatchify(patches, image.shape)

这将重建在先前代码中修补的原始图像。

警告:为了unpatchify工作,您需要创建具有相等步长的补丁。例如,如果原始图像的宽度为 3,而补丁的宽度为 2,则您不能真正创建步长为 2 的相等步长的补丁。(第一个补丁 [elem0, elem1] 和第二个补丁 [elem2, elem3],这是超出范围的)。

unpatchify 成功的必要条件是 (width - patch_width) mod step_size = 0。

完整的运行示例

2D 图像修补和合并

 patchify导入numpy 作为 np
导入patchify unpatchify    

图像 =  np 数组([[ 1 , 2 , 3 , 4 ],  [ 5 , 6 , 7 , 8 ],  [ 9 , 10 , 11 , 12 ]])

patch  =  patchify ( image ,  ( 2 , 2 ),  step = 1 )  # 将图像分割成 2*3 个 2*2 的小块。

断言 补丁形状 ==  ( 2 ,  3 ,  2 ,  2 )
reconstructed_image = unpatchify(patches, image.shape)

断言 reconstructed_image  ==  image 全部()

3D 图像修补和合并

 patchify导入numpy 作为 np
导入patchify unpatchify    

图像 =  np 随机的。兰特( 512 , 512 , 3 )

patch  =  patchify ( image ,  ( 2 , 2 , 3 ),  step = 1 )  # patch shape [2,2,3] 
print ( patch . shape )  # (511, 511, 1, 2, 2, 3). 创建的补丁总数:511x511x1

断言 补丁形状 ==  ( 511 ,  511 ,  1 ,  2 ,  2 ,  3 )
reconstructed_image = unpatchify(patches, image.shape)
打印(重建图像.形状)  # (512, 512, 3)

断言 reconstructed_image  ==  image 全部()

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

patchify-0.2.3.tar.gz (5.9 kB 查看哈希)

已上传 source

内置分布

patchify-0.2.3-py3-none-any.whl (6.6 kB 查看哈希

已上传 py3