我想从角膜的图像张量中切出一个矩形区域。该图像作为形状(128,128,3)的一个输入给出,矩形区域由固定的宽度和高度定义,另外一个形状为(2,)的第二个输入定义,以提供矩形在图像中的位置。因此,当width = height = 32时,目标张量具有(32,32,3)形状。
某些背景:我想通过自动编码器提供带有遮罩区域的图像,以希望此生成模型可以填充缺失的(归零)区域。之后,我要切出该填充区域。该掩蔽区域的位置在批次之间有所不同,因此我需要能够利用第二个输入
# first input of shape (128, 128, 3)
masked_img = Input(shape=self.input_shape)
# second input of shape (2,) or (4,)
mask_pos = Input(shape=(2,), dtype="int32", name="input-mask-position")
# feed masked image through autoencoder
filled_img = self.generator(masked_img)
# cut out the fill-in region of the output
fill_in = ???
在伪代码中,我确实需要执行以下操作:
fill_in = extract_fill_in_region(filled_img, region_x, region_y)
or
fill_in = extract_fill_in_region(filled_img, region_x, region_y, region_width,
region_height)
取决于区域的大小是否固定。
第一个参数由第一个输入(masked_img)给出。所有其他信息都隐藏在第二个输入(mask_pos)中。
在固定所有参数的情况下很容易做到这一点:
fill_in = Lambda(lambda img: img[:, 0:self.box_height, 0:self.box:width,:])(filled_image)
但这不是我需要的。
请帮助我:)预先感谢...