Python - Поворот изображения - PullRequest
       4

Python - Поворот изображения

0 голосов
/ 03 октября 2018

Как можно повернуть изображение в Python с помощью библиотеки OpenCv, а также путем изменения значения высоты и ширины изображения (без использования встроенных методов поворота в OpenCv).Это нужно реализовать с двумя вложенными циклами.

img=cv2.imread('Images/Screenshot.png',cv2.IMREAD_GRAYSCALE)

height, width = img.shape

# for i in range(0,height):
#     for j in range(0,width):
#         img[i][j]=

# show rotated image
cv2.imshow("image",img)

Спасибо, что нашли время помочь мне!

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Это должен быть OpenCv?Потому что, если нет, вы можете легко сделать это с помощью PIL:

from PIL import Image

def rotate_img(img_path, rt_degr):
    img = Image.open(img_path)
    return img.rotate(rt_degr)

img_rt_90 = rotate_img('Images/Screenshot.png', 90)
img_rt_90.save('img_rt_90.png')
0 голосов
/ 03 октября 2018

Поменяйте местами индексы:

Вы можете создать пустое изображение с помощью np.zeros() и затем прочитать пиксели текущего изображения в пустое изображение.Вы можете изменить порядок чтения пикселей для выполнения некоторых основных поворотов.Должны помочь следующие примеры.

Тестовое изображение:

img = cv2.imread('texas_longhorns_log.png')

enter image description here

Поворот влево на 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)

enter image description here

Поворот вправо на 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)

enter image description here

Поворот на 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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...