У меня есть файл CSV, который называется 'newfile1.csv'. Каждое значение представляет собой кортеж, где 2 числа отражают координату (x, y) на изображении. На изображении 68 кортежей (и, следовательно, 68 разных координат). Каждое новое изображение отображается в новой строке.
Я хочу иметь имя файла, из которого каждая из координат берется в начале каждой строки. Поэтому я хочу новый столбец в начале файла, где имя файла соответствует данным в строке, в которой оно находится в начале.
Мой код для CSV выглядит следующим образом:
# this creates a CSV file that the coordinates will be stored in, with a header of the coordinates
with open("new_file1.csv","a") as my_csv:
writer = csv.writer(my_csv)
writer.writerow(["0", "1", "2", "3"... "67"])
# this loops through all images in my folder and generate 68 landmarks, then store these as one row on the CSV
from pathlib import Path
for filename in Path('/Users/.../neutral_front/').glob('*.jpg'):
img = io.imread(filename)
dets = detector(img)
for k, d in enumerate(dets):
shape = predictor(img, d)
vec = np.empty([68, 2], dtype = int)
for b in range(68):
vec[b][0] = shape.part(b).x
vec[b][1] = shape.part(b).y
a = [vec] #'vec' represents all 68 tuples for 1 image
# this adds the 68 coordinates into 1 row of the CSV
with open("new_file1.csv","a") as my_csv:
csvWriter = csv.writer(my_csv,delimiter=',')
csvWriter.writerows(a)