Создание гистограмм изображений из всех картинок в папке - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь создать гистограмму для каждого изображения в папке и сохранить их графики в файл CSV. Пользователь будет входить в папку, в которой сохраняются изображения, а затем файлы будут создаваться и именоваться соответственно

files = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] #loop to get all files from folder
for x in files:
    image = "x + 1"
    img2 = cv2.imread('similarImages/' + directory + '/' + image + '.png', cv2.IMREAD_COLOR)
    histSim = cv2.calcHist([img2], [1], None, [256], [0, 256])  # create histo of each image
    np.savetxt('Test/similarImage' + x + '.csv', histSim, delimiter=',')  # save save plots to csv

Из моего предыдущего знания python я теоретически создал приведенный выше код, но в класс c мода, это не работает (шокер)

Я иду по правильному пути? Если бы я не смог подтолкнуть меня в правильном направлении, и если да, то почему это не работает?

Прошло много времени с тех пор, как я взял что-то подобное, и я немного заржавел, большое спасибо, Бен

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Проблема, с которой я столкнулся, заключалась в том, что переменная изображения была строкой, и поэтому, когда я добавлял к ней 1, она объединялась, а не добавляла значения, поэтому использовались целые числа, а затем конвертировались в строку, когда мне это нужно в пути к файлу работал

image = 0
files = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  # loop to get all files from folder
for x in files:

    image = x + 1
    image = str(image)
    img2 = cv2.imread('similarImages/' + directory + '/' + image + '.png', cv2.IMREAD_COLOR)
    histSim = pd.DataFrame(cv2.calcHist([img2], [1], None, [256], [0, 256]))  # create histo of each image
    histSim.to_csv('Test/histogram' + image + '.csv', index=False)
0 голосов
/ 14 февраля 2020

Вы можете использовать pandas для этой задачи. Если вы хотите сохранить все гистограммы в одном CSV-файле, вы можете использовать список и добавить к нему все значения гистограммы, используя

df = []
df.append(cv2.calcHist(img, [1], None, [256], [0, 256])[:, 0]) # check if you want like this or transpose.

. Затем преобразовать его в фрейм данных, используя pd.DataFrame, и сохранить его. как CSV-файл, используя df.to_csv

Если вы хотите сохранить каждую гистограмму в свой независимый CSV-файл, то вы можете:

histSim = pd.DataFrame(cv2.calcHist(img, [1], None, [256], [0, 256]))
histSim.to_csv('histogram.csv', index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...