根据@ SO 这里的建议,我已经对一组库存图像的平均颜色进行了分类。
r,g,b = image.convert("RGB").resize((1,1), Image.ANTIALIAS).getpixel((0,0))
现在,我想向用户展示一个色轮,并针对我的目录运行搜索,以查找与所选颜色最匹配的图像。
我已经阅读了这里发布的几个问题,这些问题建议“找到两种颜色之间的距离”,并参考 Flickr Hacks 书。
Flickr Hack 距离算法似乎基本上是:
diffr = checkImage.r - search_r
diffg = checkImage.g - search_g
diffb = checkImage.b - search_b
distance = (diffr * diffr + diffg * diffg + diffb * diffb)
如果距离 < 阈值则匹配。
这种方法需要我计算我的搜索颜色和每个图像的颜色指纹之间的距离。我想知道是否有一种方法可以根据所选颜色(中心点)和预定阈值(或搜索半径)以某种方式指定“搜索区域”。然后构造一个类似 SQL 的查询来返回该区域内的所有图像。
这可能吗??
顺便说一句,我正在使用 PIL 和相关库在 Python 中实现这一点。
谢谢你的帮助!
SR