给出一张大图,以下过程会花费很多时间:
1 将图像切成4个均匀形状的图像(在中间水平将图像分割一遍,在垂直方向将图像分割一遍):
3 concat(因此可以将其作为神经网络的输入以一批4张图像的形式运行)
我尝试过的方法(图像是方形的:
image_A = image_np[: int(size / 2), :, :]
image_B = cv2.flip(image_np[int(size / 2):, :, :], -1)
image_C = cv2.rotate(image_np[:, :int(size / 2), :], cv2.ROTATE_90_CLOCKWISE)
image_D = cv2.rotate(image_np[:, int(size / 2):, :], cv2.ROTATE_90_COUNTERCLOCKWISE)
因此,我想知道是否有一种更快的方法,因为图像/部件是一个numpy数组。
答案 0 :(得分:1)
我们可以通过数组切片简单地获取几乎免费的运行时视图,就像这样-
B = image_np[-1:int(size / 2)-1:-1, ::-1, :]
C = image_np[::-1, :int(size / 2),:].swapaxes(0,1)
D = image_np[:, -1:int(size / 2)-1:-1, :].swapaxes(0,1)
image_A = image_np[: int(size / 2), :, :]
似乎已经是一种视图,因此无需对其进行任何更改。