X[::-1]
применяется индексация: индексы X
от первого до последнего с шагом -1
.
b=X[:, ::-1, :, :]
- Перевернуть изображение вверх / вниз. c=X[:, ::-1, ::-1, :]
- Перевернуть изображение вверх / вниз и влево / вправо. d=X[:, :, ::-1, :]
- обратное изображение влево / вправо.
Примечание:
::
не является оператором, на самом деле это два :
оператора один за другим.
X[::-1]
совпадает с X[ : : -1]
.
См. Документацию Indexing .
Синтаксис основного среза c: i: j: k, где i - начальный индекс, j - индекс остановки, а k - шаг.
Если i не задано, по умолчанию оно равно 0
Если j не задано, по умолчанию n
Запись [: : -1]
, пропускается i
и j
и устанавливает k
в -1
.
Синтаксис означает: «из индекса 0
, взять все элементы с шагом -1
», что дает всем элементам в reverse порядок (все элементы вдоль этой оси).
Пример:
import cv2
import numpy as np
# Build input:
im = cv2.imread('chelsea.png')
im = cv2.resize(im, (96, 96))
X = np.empty((1, im.shape[0], im.shape[1], im.shape[2])).astype(np.uint8)
X[0, :, :, :] = im
b = X[:, ::-1, :, :]
c = X[:, ::-1, ::-1, :]
d = X[:, :, ::-1, :]
Результат:
im:
![enter image description here](https://i.stack.imgur.com/CQhOc.png)
b:
![enter image description here](https://i.stack.imgur.com/Ukc5Q.png)
c:
![enter image description here](https://i.stack.imgur.com/lbyj1.png)
d:
![enter image description here](https://i.stack.imgur.com/AZcwi.png)
Примечание:
Я как бы проигнорировал индекс кулака, потому что размер равен 1
.
В случае нескольких кадров, это обычно для кулака Индекс для применения количества кадров.