Главная страница

лр 18. ЛР№18. Лабораторная работа 18 Разработка, отладка и испытание программ, получающих информацию об изображении и обработки изображений


Скачать 164.75 Kb.
НазваниеЛабораторная работа 18 Разработка, отладка и испытание программ, получающих информацию об изображении и обработки изображений
Анкорлр 18
Дата13.03.2023
Размер164.75 Kb.
Формат файлаdocx
Имя файлаЛР№18.docx
ТипЛабораторная работа
#986842


Лабораторная работа №18

Разработка, отладка и испытание программ,

получающих информацию об изображении и обработки изображений

Познакомьтесь с краткими теоретическими сведениями

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

Для открытия файла с готовым изображением служит функция open (). Функция возвращает объект, с помощью которого производится дальнейшая работа с изображением. Например:

from PIL import Image

img = Image.open(' D:/images/foto.jpg')

Из библиотеки PIL загружаем модуль Image. Открываем файл картинки. В Image.open, нужно передать путь до картинки (файл foto.jpg расположен в папке images на диске D:).

Получение информации об изображении

Получить информацию об изображении позволяют следующие атрибуты объекта изображения:

  • width и height — соответственно, ширина и высота изображения в пикселах;

  • size — размеры изображения в пикселах в виде кортежа из двух элементов: (<Ширина>, <Высота>);

  • format — формат изображения в виде строки (например: 'gif ', 'jpeg ' и т. д.);

  • mode — цветовая модель в виде строки (например: 'L' (8 битов, черно-белое, 'RGB ' (24 бита, цветное), 'CMYK' (32 бита, цветное) и т.д.);

  • filename — путь к файлу с изображением.

Обработка изображений

Произвести различные манипуляции с загруженным изображением позволяют следующие методы:

  • сору () — создает копию изображения

  • thumbnail (<Размер>[,<Фильтр>]) — создает уменьшенную версию изображения указанного размера (миниатюру). Размер миниатюры задается в виде кортежа из двух элементов: (<Ширина>, <Высота>). В параметре <Фильтр> могут быть указаны фильтры NEAREST, BILINEAR, BICUBIC или LANCZOS.

  • resize (<Размер>[,<Фильтр>]) — изменяет размер изображения. В отличие от метода thumbnail() возвращает новое изображение, а не изменяет исходное. Изменение размера производится не пропорционально, и если пропорции не соблюдены, то изображение будет искажено. В параметре <Фильтр> могут быть указаны фильтры NEAREST, BILINEAR, BICUBIC или LANCZOS.

  • rotate(<Угол>[, resample=NEAREST][, expand=0][, center=None][, translate=None])поворачивает изображение на указанный угол, отмеряемый в градусах против часовой стрелки. В параметре resample могут быть указаны фильтры NEAREST, BILINEAR или BICUBIC. Если параметр expand имеет значение True, размер изображения будет увеличен таким образом, чтобы оно полностью поместилось. По умолчанию размер изображения сохраняется, а если изображение не помещается, то оно будет обрезано. В параметре center можно указать (в пикселах в виде кортежа) горизонтальную и вертикальную координаты точки, относительно которой будет поворачиваться изображение. Параметр translate указывает (также в пикселах в виде кортежа) горизонтальную и вертикальную величины, на которые изображение будет смещено после поворота.

  • transpose (<преобразование>) — создает зеркальный образ или повернутое изображение. В качестве параметра можно указать значения FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180, ROTATE_270, TRANSPOSE или TRANSVERSE.

  • crop ( (, , , )) — вырезает прямоугольный фрагмент из исходного изображения. Первые два элемента задают координату левого верхнего угла вырезаемого фрагмента, а вторые два элемента— координату его правого нижнего угла. Начало координат располагается в левом верхнем углу изображения

  • paste (<Цвет>, <Область>) — закрашивает прямоугольную область определенным цветом. Координаты области указываются в виде кортежа из четырех элементов: первые два элемента области задают координату левого верхнего угла закрашиваемой области, а вторые два элемента — координату ее правого нижнего угла. paste (<Изображение>, <Координаты>) — закрашивает вставляет изображение в исходное изображение (картинку в картинку). Координаты указываются с помощью кортежа (координата x верхнего левого угла, координата y верхнего левого угла)

  • convert(<Новый режим>) — преобразует изображение в указанный режим. Метод возвращает новое изображение.

  • filter (<Фильтр>) — применяет к изображению указанный фильтр. В качестве параметра можно указать фильтры из модуля ImageFilter: BLUR - делает изображение более размытым, чем оригинал; CONTOUR - делает изображение по контурным линиям; DETALL - фильтрация улучшения деталей; EDGE_ENHANCE - улучшение краев изображения; EMBOSS - сделает изображение рельефным; SMOOTH - сделает изображение гладким (уменьшают резкий градиент); SHARPEN - усиление края изображения и части серого перехода (обеспечение четкости изображения).

Запустите интегрированную среду разработки языка Python IDLE с помощью ярлыка на Рабочем столе и выполните задания:

  1. Откройте файл с изображением figure.png, созданный на предыдущем занятии (все открываемые изображения должны храниться в той же папке, что и файл с кодом программы). Используя библиотеку Pillow, получите информацию об изображении (выведите её в отдельные строки) в следующей последовательности: о размере изображения, о цветовой модели изображения, о формате, о пути к файлу с изображением. Создайте копию изображения и сохраните её в файл с именем shot.png

  2. Откройте файл с изображением figure.png, созданный на предыдущем занятии. Используя библиотеку Pillow, преобразуйте изображение из режима RGB в RGBA, подтвердите выводом на экран, что вы сделали это, получив соответствующую информацию об изображении. Сохраните изображение в формате BMP

  3. Откройте файл с изображением figure.png, созданный на предыдущем занятии. Используя библиотеку Pillow, вырежьте из изображения прямоугольник и сохраните вырезанное изображение в файле под именем rectangle.png

  4. Откройте файл с изображением clock.png, созданный на предыдущем занятии. Используя библиотеку Pillow, cоздайте уменьшенную версию изображения размера (в 2 раза меньше от исходного), подтвердите выводом на экран, что вы сделали это, получив соответствующую информацию об изображении. Создайте горизонтальный зеркальный образ изображения часов и выведите его на экран

  5. Откройте файл с изображением clock.png, созданный на предыдущем занятии. Используя библиотеку Pillow, создайте вертикальный зеркальный образ изображения часов, сделайте его в черно-белом варианте и сохраните его под именем clock2.png

  6. И спользуя файлы clock.png и clock2.png, применив фильтр, создайте изображение по образцу (см. рис.) и выведите его на экран


Критерий оценивания:

% выполнения заданий

Отметка

0 - 15

1

16 – 25

2

26 - 35

3

36 - 45

4

46 - 55

5

56 - 65

6

66 - 75

7

76 - 85

8

86 - 95

9

96 - 100

10


написать администратору сайта