Использование библиотеки exif Python для извлечения и изменения метаданных файлов цифровых изображений.
На каждой фотографии есть нечто большее, чем кажется на первый взгляд. Изображения, сделанные цифровыми камерами и смартфонами, содержат обширную информацию (известную как метаданные) за пределами видимых пикселей.
Эти метаданные могут быть полезны во многих бизнес-кейсах. Например, системы обнаружения мошенничества для страховых претензий анализируют метаданные представленных фотографий, чтобы проверить, сделал ли их заявитель до аварии.
В этой статье мы рассмотрим, как использовать библиотеку exif для чтения и редактирования метаданных цифровых изображений.
Содержание
(1)Что такое метаданные и Exif?
(2)Читать метаданные изображения
(3) Изменить метаданные изображения
(4)Сохранить измененные метаданные изображения
(5)Подведение итогов эм>
Не стесняйтесь проверить все коды в сопроводительном репозитории GitHub.
Что такое метаданные и Exif?
Метаданные относятся к набору данных, описывающих данные, и вы можете рассматривать их как данные о данных. Метаданные фотографий состоят из такой информации, как модель камеры и дата съемки.
Эти метаданные хранятся в формате Exif (формат файлов изображений с возможностью обмена), формате, стандартном для различных типов мультимедиа (например, изображений, видео, аудио), снятых такими устройствами, как цифровые камеры и смартфоны.
Библиотека Python, используемая в этом проекте, называется exif, которая является тезкой формата Exif.
Чтение метаданных изображения
Начнем с установки exif с помощью этой команды:
pip install exif
Для этой демонстрации вот фотография, над которой мы будем работать:
Мы создаем экземпляр класса exifImage
, считывая изображение в двоичном формате, прежде чем проверять, содержит ли оно какие-либо метаданные. Если это так, метод has_exif
вернет значение True.
Разные фотографии имеют разные атрибуты метаданных (также известные как теги Exif) из-за разных устройств, используемых для их съемки. Мы можем просмотреть существующие атрибуты изображения с помощью метода list_all()
.
Чтобы прочитать значения определенных атрибутов, мы можем использовать метод get()
. Хотя есть и другие методы, я предпочитаю get()
, так как он изящно обрабатывает случаи, когда атрибуты не существуют, возвращая None (вместо выдачи ошибки).
P.S. Ознакомьтесь с записной книжкой Image_Metadata_Extraction_EXIF.ipynb , чтобы найти функцию для извлечения всех метаданных изображения в кадр данных Pandas.
Изменить метаданные изображения
Помимо чтения метаданных, мы можем выполнять ряд модификаций, таких как добавление, обновление и удаление атрибутов.
(i) Добавить метаданные
Новые атрибуты, отсутствующие в настоящее время, могут быть добавлены для дальнейшего обогащения метаданных.
Важно отметить, что добавленный атрибут должен быть распознанным тегом EXIF. В противном случае добавление не состоится. Вы можете найти полный список распознаваемых атрибутов изображения здесь.
Например, мы можем добавить признанный атрибут copyright. После присвоения значения (Kenneth Leung 2021) атрибуту copyright метод get()
даст нам это новое значение вместо Нет.
(ii) Обновление метаданных
Мы также можем обновить существующие значения атрибутов метаданных изображения.
(iii) Удалить метаданные
Если мы хотим удалить определенные атрибуты вместо их обновления, мы можем сделать это с помощью .delete()
.
Сохранить измененные метаданные изображения
После всех изменений последний шаг — сохранить изображение с измененными метаданными в виде нового файла.
С учетом вышеизложенного мы сохранили измененное изображение, используя имя файла с префиксом «modified_», чтобы исходное изображение не было перезаписано.
Подведение итогов
- Есть много других интересных атрибутов для изучения, и вы можете найти более подробную информацию на странице exifdocumentation.
- Что мы сделали до сих пор, так это обработали одно изображение. Ценность пакета exif реализуется посредством пакетной обработки, при которой извлечение и изменение метаданных выполняются на большомнаборе изображений. Чтобы увидеть пакетную обработку в действии, взгляните на скрипт
batch_process_metadata.py
в репозитории GitHub. - Важно помнить, что перед использованием этой библиотеки сделайте резервную копию своих фотографий, чтобы предотвратить непредвиденную потерю данных.
Перед тем, как ты уйдешь
Я приветствую вас, присоединяйтесь ко мне в изучении науки о данных! Подпишитесь на эту страницу Средний и загляните на мой GitHub, чтобы оставаться в курсе более интересного контента по науке о данных. А пока получайте удовольствие от чтения и изменения метаданных изображений!