Рубрики
Без рубрики

Как обрезать фото с Python

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Если вам нравится фотографировать, чем вы, вероятно, также окажетесь от времени обрезки ваших фотографий. Я буду обрезать фотографии, чтобы избавиться от фона шума или просто сосредоточиться на эту тему, которую я пытался запечатлеть. Я также люблю принимать фотографии высокого разрешения насекомых или других небольших существ, а затем обрезать его, чтобы она казалось, что я был еще ближе к насекомому, чем я действительно был.

Теперь большинство людей будут использовать приложение для редактирования фотографий для обрезания их изображения, такого как элементы Photoshop. Я тоже использую эти виды инструментов, но вы также можете использовать язык программирования Python, чтобы сделать обрезку для вас. Один хороший пример, где вы можете использовать Python, это если у вас есть тысячи отсканированных изображений того же типа, то он имеет больше смысла просто написать скрипт, чтобы сделать обрезку для вас.

Самый популярный пакет для манипуляций изображений в Python – Подушка Пакет, «дружелюбная вилка библиотеки визуализации Python (Pil)». Вы можете установить подушку, используя PIP:

pip install Pillow

Теперь, когда у нас установлена подушка, нам просто нужно фото. Вот один из кузнечиков, который я взял:

Давайте напишем какой-нибудь код, чтобы попытаться обрезать картину до головы кузнечика:

from PIL import Image

def crop(image_path, coords, saved_location):
    """
    @param image_path: The path to the image to edit
    @param coords: A tuple of x/y coordinates (x1, y1, x2, y2)
    @param saved_location: Path to save the cropped image
    """
    image_obj = Image.open(image_path)
    cropped_image = image_obj.crop(coords)
    cropped_image.save(saved_location)
    cropped_image.show()


if __name__ == '__main__':
    image = 'grasshopper.jpg'
    crop(image, (161, 166, 706, 1050), 'cropped.jpg')

Первое, что мы делаем в этом коде, это импортировать Изображение Подмодуль из PIL. Тогда мы создаем урожай () Функция, которая занимает 3 параметра:

  • image_path – путь к файлу к файлу, который вы хотите обрезать
  • Координы – 4-элементный кортеж, который содержит начало и концевые координаты для обрезания изображения для
  • saved_location – путь к файлу для сохранения обрезанного файла в

После открытия исходного изображения мы получаем объект назад, что мы можем позвонить урожай () на. Метод культуры принимает координаты, которые мы прошли и посеруйте изображения соответствующим образом и возвращают второй объект изображения. Затем мы называем это второе изображение объекта Сохранить () Способ и сообщить ему, чтобы сохранить его в указанное место.

Когда вы запустите код, он покажет обрезанное изображение, а также сохранение его:

Это довольно близко к тому, что я хотел. Вы можете немного экспериментировать с координатами X/Y в коде выше, чтобы попробовать обрезку изображения различными способами, чтобы увидеть, как это работает.

Обертывание

Этот код, вероятно, должен иметь проверку в нем, что предотвращает перезаписи пользователя исходное изображение. Любой хороший редактор фото не будет перезаписать оригинальную фотографию, как это действительно раздражает и обычно плохое. Но я оставлю это читателю, чтобы понять это.

Во всяком случае, подушка проекта является действительно мощным и полезным пакетом для работы с изображениями в Python. Дайте это попробовать и посмотрите, что забавные вещи, которые вы можете достичь!

Связанное чтение

  • Вступление к Библиотека визуализации Python/подушка