Суммируйте средние значения пикселей всех изображений: TypeError: объект 'numpy.float64' не повторяется - PullRequest
1 голос
/ 10 апреля 2019

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

Вот что я пробовал

Следующие коды демонстрируют, как выглядит вывод np.mean ()

import os,glob
from PIL import Image
from skimage import io
import numpy as np
from statistics import stdev 

path = "/Users/Xin/Desktop/SVM-Image-Classification-master/test"
# Delete images with the low pixel value
for filename in os.listdir(path):
    images = Image.open(os.path.join(path,filename))  
    print(np.mean(images))
    #if np.mean(images) < 20:
        #os.remove(os.path.join(path, filename))
#print(len(os.listdir(path)))

Выведите следующим образом, значение находится в диапазоне 0 ~ 255. Чем меньше значения, тем более черными являются изображения.

12.685516357421875
14.462142944335938
12.24658203125
9.507644653320312
18.701019287109375
10.004150390625
18.128433227539062
12.625930786132812

Следующие коды являются тем, что я пробовал

path = "/Users/Xin/Desktop/SVM-Image-Classification-master/test"
# Delete images with the low pixel value
for filename in os.listdir(path):
    images = Image.open(os.path.join(path,filename))  
    L = list[round(np.mean(images),2)]
    totalvalue = sum(L)
    print(totalvalue)
    #if np.mean(images) < 20:
        #os.remove(os.path.join(path, filename))
#print(len(os.listdir(path)))

Ошибка указывает на следующее

TypeError: list indices must be integers or slices, not numpy.float64

Кто-нибудь может мне помочь?Большое спасибо!

1 Ответ

0 голосов
/ 10 апреля 2019

Эту функцию можно заменить стандартным отклонением.

def function(image):
    (R, G, B)= function_for_rgb(image)
    std_dev = statistics.stdev([R, G, B]) #standard deviation
    return  round(std_dev,2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...