我用 this method 取了每种颜色的平均值并将红色、绿色和蓝色的平均值写入数据库。
Here are the images按“-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")
谢谢!
最佳答案
实际上,第五张图片并不是最蓝的。请注意,白色是 (255, 255, 255)
作为 rgb,因此完全白色的图像与完全蓝色的图像具有同样多的蓝色。较深的蓝色具有比白色更小的 blue
成分。
关于python - 是否可以从直方图中找到图像的平均颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7574078/