【问题标题】:Remembering original image after patch extraction提取补丁后记住原始图像
【发布时间】:2018-11-06 11:21:22
【问题描述】:
如果这太笼统了,我深表歉意。我在 scikit-learn 中使用 PatchExtractor 函数将图像 - 一个大小 = (n_images x image_height x image_width) 的数组 - 转换为补丁,因此生成的数组的大小 = (n_patches, patch_height, patch_width)。
但是,使用此功能时,我会忘记哪个补丁来自哪个图像,这对管道的后期很重要。有没有办法跟踪补丁来自的图像?
【问题讨论】:
标签:
python
image
numpy
scikit-learn
【解决方案1】:
补丁是按顺序从图像中提取的,因此,如果您知道图像的数量和补丁的数量,您就可以知道是从哪个图像中提取的补丁:
import numpy as np
from sklearn.feature_extraction import image
images = np.zeros((5, 4, 4, 3))
images[:] = np.arange(5).reshape(-1, 1, 1, 1)
patches = image.PatchExtractor((2, 2)).transform(images)
n_patches = patches.shape[0] // images.shape[0]
index = np.repeat(np.arange(images.shape[0]), n_patches)
print(index, patches[:, 0, 0, 0])