Поменяйте местами индексы:
Вы можете создать пустое изображение с помощью np.zeros()
и затем прочитать пиксели текущего изображения в пустое изображение.Вы можете изменить порядок чтения пикселей для выполнения некоторых основных поворотов.Должны помочь следующие примеры.
Тестовое изображение:
img = cv2.imread('texas_longhorns_log.png')
Поворот влево на 90 градусов:
h,w,c = img.shape
empty_img = np.zeros([h,w,c], dtype=np.uint8)
for i in range(h):
for j in range(w):
empty_img[i,j] = img[j-1,i-1]
empty_img = empty_img[0:h,0:w]
cv2.imwrite("tester1.png", empty_img)
Поворот вправо на 90 градусов:
h,w,c = img.shape
empty_img = np.zeros([h,w,c], dtype=np.uint8)
for i in range(h):
for j in range(w):
empty_img[i,j] = img[h-j-1,w-i-1]
empty_img = empty_img[0:h,0:w]
cv2.imwrite("tester2.png", empty_img)
Поворот на 180 градусов:
h,w,c = img.shape
empty_img = np.zeros([h,w,c], dtype=np.uint8)
for i in range(h):
for j in range(w):
empty_img[i,j] = img[h-i-1,w-j-1]
empty_img = empty_img[0:h,0:w]
cv2.imwrite("tester3.png", empty_img)