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

MatplotlibMatplotlibBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") matplotlib/PlottingDataGroup -.-> matplotlib/heatmaps("Heatmaps") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/FileHandlingGroup -.-> python/with_statement("Using with Statement") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48778{{"Обрезание изображений с использованием патчей"}} matplotlib/figures_axes -.-> lab-48778{{"Обрезание изображений с использованием патчей"}} matplotlib/heatmaps -.-> lab-48778{{"Обрезание изображений с использованием патчей"}} python/tuples -.-> lab-48778{{"Обрезание изображений с использованием патчей"}} python/importing_modules -.-> lab-48778{{"Обрезание изображений с использованием патчей"}} python/with_statement -.-> lab-48778{{"Обрезание изображений с использованием патчей"}} python/data_visualization -.-> lab-48778{{"Обрезание изображений с использованием патчей"}} end

Импорт библиотек

Для начала работы нам нужно импортировать необходимые библиотеки. Мы будем использовать Matplotlib для отображения изображения и создания патча, а библиотеку cbook для загрузки образцового изображения.

import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.patches as patches

Загрузка изображения

Мы будем использовать метод get_sample_data из cbook для загрузки образцового изображения. Этот метод возвращает объект, подобный файлу, который мы можем передать в imshow для отображения изображения.

with cbook.get_sample_data('grace_hopper.jpg') as image_file:
    image = plt.imread(image_file)

Отображение изображения

Теперь мы можем отобразить изображение с использованием метода imshow библиотеки Matplotlib. Мы также отключим оси, чтобы увидеть только изображение.

fig, ax = plt.subplots()
im = ax.imshow(image)
ax.axis('off')

Создание патча

Для создания патча мы будем использовать модуль patches библиотеки Matplotlib. Мы создадим круговой патч с радиусом 200 пикселей, центрированный в точке (260, 200).

patch = patches.Circle((260, 200), radius=200, transform=ax.transData)

Обрезать изображение

Наконец, мы обрежем изображение с использованием метода set_clip_path изображения. Этот метод принимает патч в качестве аргумента и обрезает изображение по форме патча.

im.set_clip_path(patch)

Отобразить обрезанное изображение

Теперь мы можем отобразить обрезанное изображение с использованием метода show библиотеки Matplotlib.

plt.show()

Резюме

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