Сохранение свойств изображения в 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:
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.