Сохранение свойств изображения в CSV с помощью Python

Опубликовано: 24 Марта, 2022

В этой статье мы напишем скрипты на Python, чтобы найти высоту, ширину, нет. каналов в данном файле изображения и сохраните его в формате CSV. Ниже представлена реализация того же самого с использованием Python3. Предпосылкой для этого раздела является то, что вы уже установили NumPy и OpenCV.

Подход:

  • Сначала мы загрузим необходимые библиотеки в файл python (NumPy, OpenCV и т. Д.).
  • Создайте пустой файл CSV с именем столбца только в том случае, если файл CSV отсутствует (высота, ширина, каналы, цвета и т. Д.). Если файл data.csv не существует, оператор else создаст новый файл.
  • Теперь мы будем использовать функцию argparse (), чтобы получить путь к каталогу изображений от пользователя в командной строке.
  • Найдите свойства цвета с помощью CV2.
  • Мы будем использовать функцию image.shape, чтобы узнать высоту, ширину и каналы изображения.
  • Затем мы рассчитаем средний красный , средний синий , средний зеленый цвета изображения.
  • Затем мы запишем выходные данные в файл csv с помощью функции writerow () .

Below is the implementation:

Python3

# Required Libraries
from os import listdir
from os.path import isfile, join
from pathlib import Path
import numpy
import cv2
import argparse
import numpy
import csv
  
# Check whether the CSV 
# exists or not if not then create one.
my_file = Path("csv/details.csv")
  
if my_file.is_file():
    f = open(my_file, "w+")
    with open("csv/details.csv", "a", newline="") as file:
        writer = csv.writer(file)
          
        writer.writerow(["S.No.", "Name", "Hieght",
                         "Width", "Channels",
                         "Avg Blue", "Avg Red",
                         "Avg Green"])
    f.close()
    pass
    
else:
    with open("csv/details.csv", "w", newline = "") as file:
        writer = csv.writer(file)
          
        writer.writerow(["S.No.", "Name", "Hieght",
                         "Width", "Channels",
                         "Avg Blue", "Avg Red",
                         "Avg Green"])
  
# Argparse function to get
# the path of the image directory
ap = argparse.ArgumentParser()
  
ap.add_argument("-i", "--image"
                required = True
                help = "Path to folder")
  
args = vars(ap.parse_args())
  
# Program to find the
# colors and embed in the CSV
mypath = args["image"]
  
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
images = numpy.empty(len(onlyfiles), dtype = object)
  
for n in range(0, len(onlyfiles)):
    
    path = join(mypath,onlyfiles[n])
    images[n] = cv2.imread(join(mypath,onlyfiles[n]),
                           cv2.IMREAD_UNCHANGED)
      
    img = cv2.imread(path)
    h,w,c = img.shape
    print(h, w, c)
      
    avg_color_per_row = numpy.average(img, axis = 0)
    avg_color = numpy.average(avg_color_per_row, axis = 0)
      
    with open("csv/details.csv", "a", newline = "") as file:
        writer = csv.writer(file)
        writer.writerow([n+1, onlyfiles[n], h, w, c, 
                         avg_color[0], avg_color[1],
                         avg_color[2]])
        file.close()

Выход:

Использование:

  • Сохраните этот код с именем main.py.
  • Shift (клавиша) + щелчок правой кнопкой мыши и щелкните здесь, чтобы открыть окно PowerShell.
 python3 main.py --image / путь / к / изображениям / папке /:

Вывод файла CSV:

Созданный файл CSV

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.