Вопрос или проблема
У меня всего 30 000 изображений. Они распределены по 32 классам. Я хочу сохранить эти изображения из Google Colab на свой диск с именами папок в качестве названий их меток. Это возможно сделать с помощью кода на Python? В противном случае это будет утомительная задача. Любые предложения будут полезны для меня. Заранее благодарен.
Например, я создал это.
Это мои метки.
from matplotlib import pyplot as plt
for i in range(len(unique_arr)):
ab = plt.imshow(final[i], interpolation='nearest')
plt.savefig(f"label{unique_arr[i]}.png")
plt.show()
Это те три изображения
И изображения сохраняются как label{}.png
Похоже, вы уже подключили свой Google Диск. Функция savefig может принимать путь и имя изображения в качестве входных аргументов.
images_dir="/content/gdrive/My Drive/Images"
plt.savefig(f"{images_dir}/label{unique_arr[i]}.png")
В цикле for вы также можете изменить этот каталог изображений для каждой метки, где имя метки ‘/label’ добавляется к пути каталога изображений, и вы сможете классифицировать каждое изображение в папку в зависимости от его метки.
Ответ или решение
Для автоматического сохранения изображений из Google Colab в Google Диск с разделением по папкам в зависимости от их меток, вы можете использовать следующий подход. Этот метод позволяет вывести на экран изображения и сохранить их в соответствующие папки, имена которых будут соответствовать меткам изображений.
Подготовительный этап
Первым делом важно убедиться, что ваш Google Диск смонтирован в Google Colab. Это можно сделать с помощью следующего кода:
from google.colab import drive
drive.mount('/content/gdrive')
После этого вы сможете обращаться к вашему Google Диску как к файловой системе.
Создание структуры папок
Перед тем как сохранить изображения, создадим структуру папок по меткам:
import os
# укажите путь к директории на вашем Google Диске
base_dir = "/content/gdrive/My Drive/Images"
# Пример: уникальные метки для классификации изображений
unique_labels = ['cat', 'dog', 'bird', ..., 'labelN'] # замените на ваши метки
# Создаем папки для каждой метки, если они еще не существуют
for label in unique_labels:
os.makedirs(os.path.join(base_dir, label), exist_ok=True)
Сохранение изображений
Теперь, когда у нас есть папки, можно сохранить соответствующие изображения:
import matplotlib.pyplot as plt
# Предположим, у вас есть массивы images и labels
# images - массив изображений, labels - метки для каждого изображения
images = [...] # замените на ваш массив изображений
labels = [...] # замените на массив меток для соответствующих изображений
for i in range(len(images)):
plt.imshow(images[i], interpolation='nearest')
# Определяем директорию для сохранения
image_path = os.path.join(base_dir, labels[i], f"{labels[i]}_{i}.png")
plt.savefig(image_path)
plt.close() # Закрываем текущее изображение, чтобы освободить память
Объяснение кода:
- Монтирование Google Диска: Мы используем
drive.mount
, чтобы подключить Google Диск. - Создание папок: С помощью
os.makedirs
создаем папки для каждой метки, если они еще не существуют. - Сохранение изображений:
- В цикле
for
мы проходим по списку изображений и соответствующих меток. - Для каждого изображения мы используем
plt.imshow
для отображения его. - Затем сохраняем изображение в соответствующую папку с именем, включающим метку и индекс изображения, чтобы избежать конфликтов имен.
- Используем
plt.close()
, чтобы закрыть текущее изображение и освободить память.
- В цикле
Заключение
Этот метод позволяет вам автоматизировать процесс сохранения 30,000 изображений по классам в отдельные папки на Google Диске. Вы можете адаптировать код под свои нужды, например, изменив формат имени файла или местоположение сохранения. Использование таких простых и эффективных подходов с Python делает задачу управления изображениями менее трудоемкой и более организованной.