我找不到有关如何执行此操作的任何现有答案,因此我已经编写了自己的代码,如下所示。这可能不是最快的方法,但效果很好。
numpy.roll()可用于在任意轴上循环移动数组。例如,对于一维数组,它可以用作:
import numpy as np
arr = np.array(range(10))
# arr = [0 1 2 3 4 5 6 7 8 9]
arr_2 = np.roll(arr, len(arr)//2)
# arr_2 = [5 6 7 8 9 0 1 2 3 4]
Run Code Online (Sandbox Code Playgroud)
可以使用相同的方法水平交换两半图像:
import cv2
import numpy as np
img = cv2.imread('Figure.png', 0)
img = np.roll(img, img.shape[1]//2, axis = 1)
Run Code Online (Sandbox Code Playgroud)
用于垂直交换,np.roll(img, img.shape[0]//2, axis = 0).
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |