一个库,可帮助您将图像分割成小的、可重叠的补丁,并将补丁合并回原始图像。
项目描述
修补
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
查看哈希)
内置分布
patchify-0.2.3-py3-none-any.whl
(6.6 kB
查看哈希)