【发布时间】:2011-11-26 07:23:26
【问题描述】:
我用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")
谢谢!
【问题讨论】:
-
您需要一个亮度和饱和度分开的色彩空间 (HSL/HSV)。然后找到每个像素的色调分量的主导值。
-
Paolo Moretti:我使用 Python 的 colorsys 来获取色调:
hue = colorsys.rgb_to_hls(r,g,b)[0]并按色调排序,但相似颜色的静止图像不会组合在一起。 -
这实际上与 App Engine 没有任何关系,不是吗?此外,您询问的是直方图和图像处理,但没有包含任何图像处理代码。
-
@Nick Johnson:我删除了 GAE 标签。该代码包括我如何计算直方图和平均值,但不幸的是,当我按 rgb 或按色调排序时,具有相似颜色的图像不会组合在一起。
标签: python image colors histogram