Как перевернуть картинку в python
Перейти к содержимому

Как перевернуть картинку в python

Как импортировать и повернуть изображение с помощью matplotlib?

Язык программирования Python

Примеры того, как импортировать и вращать изображение с помощью matplotlib.

Импорт изображения с помощью matploitlib

В matplotlib вы можете напрямую импортировать изображение следующим образом:

from matplotlib import image from matplotlib import pyplot as plt img = image.imread("fav.jpeg") print(type(img))
Code language: JavaScript (javascript)
class 'numpy.ndarray'>
Code language: HTML, XML (xml)
print(img.shape)
Code language: CSS (css)
(1280, 850, 3)

Отрисовка изображения с помощью matploitlib

Далее мы можем построить график с этим изображением с помощью imshow:

plt.imshow(img) plt.show()
Code language: CSS (css)

Поворот изображения с помощью scipy.ndimage

Чтобы повернуть изображение, одним из решений является использование scipy:

from PIL import Image from matplotlib import pyplot as plt import scipy.ndimage as ndimage data = Image.open("fav.jpg") angle = 45 # в градусах new_data = ndimage.rotate(data, angle, reshape=True) plt.imshow(new_data) plt.savefig("fav_rotated.png", bbox_inches='tight', dpi=100) plt.show()
Code language: PHP (php)

Примечание: “reshape = True” автоматически подгоняет размер изображения по ширине и высоте.

from PIL import Image from matplotlib import pyplot as plt import scipy.ndimage as ndimage data = Image.open("fav.jpg") angle = 45 # в градусах new_data = ndimage.rotate(data, angle, reshape=False) plt.imshow(new_data) plt.savefig("fav_rotated.png", bbox_inches='tight', dpi=100) plt.show()
Code language: PHP (php)

Перевернуть изображение

В файле image.jpg лежит изображение. Зеркально отразите его относительно центральной горизонтальной оси.
Формат ввода
Изображение image.jpg в текущей папке.
https://contest.yandex.ru/test. ffe10d4111
Формат вывода
Изображение res.jpg в текущей папке.
https://contest.yandex.ru/test. 8084317e9b
Примечания
В этой задаче нельзя пользоваться библиотекой numpy.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Перевернуть массив
Здравствуйте помогите пожалуйста, нужно перевернуть массив Он у меня выводит числа так: 0 1 2 3 4.

Перевернуть или транспонировать DataFrame
Приветствую Граждане. Имеется в наличии DataFrame вот такого вида EURUSD1_1.csv (увы такого.

Перевернуть число
помогите решить задачку, я написал код а он не правильный d1 = n = input (‘ Введите 5-ти значное.

Перевернуть число
Решить две разные задачи. 1. Вводится список чисел (любым способом, который вы знаете). Найти.

Перевернуть число
помогите решить задачу, дано 5 ти значное число надо его перевернуть, цикли использовать не льзя.

Как повернуть картинку в tkinter

С помощью библиотеки PIL (Pillow). В tkinter встроенных средств для поворота картинок нет.

12 июн 2022 в 12:09

12 июн 2022 в 12:39

а как добавить картинку на экран с помощью PIL

12 июн 2022 в 12:50

@Codex «добавить на экран» можно с помощью tkinter. Но если перед этим нужно повернуть — это делается с помощью PIL, в памяти, а не на экране.

15 июн 2022 в 8:04

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • python
  • tkinter

Как повернуть изображение используя Pillow

Поворачиваем изображение в PIL Python

Метод rotate() из модуля Image применяется для поворачивания изображения в зависимости от указанных градусов.

Загружаем и сохраняем картинку: guido-van-rossum.jpg

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )

Данный код выведет наше изображение.

Как повернуть изображение используя Pillow

Угол вращения картинки в Pillow

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

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Поворачиваем изображение на 90 градусов:

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 90 )
im_rotate . save ( ‘guido_90.jpg’ , quality = 95 )

Полученный результат с повернутой картинкой на 90 градусов против часовой стрелки:

Повернуть картинку на 90 градусов

Поворачиваем изображение на 45 градусов через PIL в Python:

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 45 )
im_rotate . save ( ‘guido_45.jpg’ , quality = 95 )

Поворачиваем изображение на 45 градусов

Поворачиваем изображение полностью

Как видно на картинках в примерах выше, по умолчанию размер готового изображения равен размеру изначального изображения, а части повернутого изображения которые попали за пределами изначального размера отсекаются. Если мы поставим параметр expand на True , то повернутое изображение удовлетворит наши требования.

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 90 , expand = True )
im_rotate . save ( ‘guido_expand_90.jpg’ , quality = 95 )

Теперь изображение выглядит так как мы ожидали. Она повернулась полностью, без черных границ по сторонам.

Поворачиваем изображение на 90 градусов

Поворачиваем изображение на 45 градусов.

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 45 , expand = True )
im_rotate . save ( ‘guido_expand_45.jpg’ , quality = 95 )

Поворачиваем изображение на 45 градусов в Python

Фильтры NEAREST, BILINEAR и BICUBIC в Pillow

Параметр resample можно использовать для указания определенного фильтра, который будет использоваться при поворачивании изображения.

  • Image.NEAREST (ближайший сосед / по умолчанию);
  • Image.BILINEAR ;
  • Image.BICUBIC .

С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию Image.NEAREST .

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 45 , expand = True , resample = Image . BICUBIC )
im_rotate . save ( ‘guido_resample_bicubic.jpg’ , quality = 95 )

Image.NEAREST Image.BILINEAR Image.BICUBIC
Pillow Image.NEAREST Python PIL Image.BILINEAR Python Pillow Image.BICUBIC Python

Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр Image.BILINEAR сделал картинку более гладкой.

Меняем центр изображения при её поворачивании

Вы можете уточнить позицию центра изображения с помощью параметра center в методе rotate() .

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 45 , center = ( 0 , 100 ) )
im_rotate . save ( ‘guido_new_center.jpg’ , quality = 95 )

Как повернуть изображение используя Pillow

В случае, когда параметр expand=True , область выходящего изображения определяется предположением, что картинка крутится по своему изначальному центру.

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 45 , expand = True , center = ( 0 , 100 ) )
im_rotate . save ( ‘guido_new_center_expand.jpg’ , quality = 95 )

Как повернуть изображение используя Pillow

Смещение изображения при поворачивании

Вы можете задать определенное смещение перед вращением изображения с помощью параметра translate . Параметр translate требует два координата (смещения в x направлении, смещения в y направлении).

Чтобы продемонстрировать данное смещение, мы не будем поворачивать изображение а просто укажем нужное нам смещение.

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 0 , translate = ( 100 , 50 ) )
im_rotate . save ( ‘guido_translate_0.jpg’ , quality = 95 )

Как повернуть изображение используя Pillow

Поворот изображения на 45 градусов со смещением:

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 45 , translate = ( 100 , 50 ) )
im_rotate . save ( ‘guido_translate_45.jpg’ , quality = 95 )

Поворачиваем изображение на 45 градусов

Если параметр expand=True , итоговая область изображения определяется предположением, что картинка вращается без смещения.

from PIL import Image
im = Image . open ( ‘guido-van-rossum.jpg’ )
im_rotate = im . rotate ( 45 , translate = ( 100 , 50 ) , expand = True )
im_rotate . save ( ‘guido_translate_expand_45.jpg’ , quality = 95 )

Поворачиваем изображение в Python

Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.

E-mail: vasile.buldumac@ati.utm.md

Образование
Universitatea Tehnică a Moldovei (utm.md)

  • 2014 — 2018 Технический Университет Молдовы, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
  • 2018 — 2020 Технический Университет Молдовы, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *