Можно ли найти средний цвет изображения по его гистограмме? - PullRequest
2 голосов
/ 27 сентября 2011

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

Вот изображения , отсортированные по "-blue". Как видите, 5-е изображение имеет самый синий цвет. Я что-то не так делаю или невозможно получить средний цвет по гистограмме?

Это обработчик, где я создаю гистограмму:

class ImageSave(webapp.RequestHandler):
    def post(self):
        homepage = HomePage()
        original_image = self.request.get("img")
        url = self.request.get("url")
        firm_name = self.request.get("firm_name")

        original_image = db.Blob(original_image)
        thumbnail = images.resize(original_image, 250, 250)
        img = images.Image(thumbnail)
        hist = img.histogram()
        rgb_weighed_average = hist_weighed_average(hist)

        #update database
        homepage.original_image = original_image            
        homepage.thumbnail = thumbnail
        homepage.firm_name = firm_name
        homepage.url = url

        homepage.red = rgb_weighed_average[0]
        homepage.green = rgb_weighed_average[1]
        homepage.blue = rgb_weighed_average[2]

        homepage.put()

        self.redirect("/imageupload")

Спасибо!

1 Ответ

5 голосов
/ 27 сентября 2011

На самом деле, у пятого изображения не самый синий. Обратите внимание, что белый цвет равен (255, 255, 255) как rgb, поэтому изображение, которое является полностью белым, имеет столько же синего цвета, сколько изображение, которое является полностью синим. Темно-синий имеет меньший blue компонент, чем белый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...