使用Python的PIL模块来进行图片对比

这篇文章主要介绍了使用Python的PIL模块来进行图片对比的方法,搜索引擎最基本的图片搜索也是利用图片颜色值的对比来实现的,需要的朋友可以参考下

在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, 开个玩笑,当然是通过机器识别的,海量的图片只有机器识别才能做到。
那用python能不能实现这种功能呢?答案是:能

利用python的PIL模块的强大的图像处理功能就可以做到,下面上代码:

import colorsys

def get_dominant_color(image):

#颜色模式转换,以便输出rgb颜色值
  image = image.convert('RGBA')

#生成缩略图,减少计算量,减小cpu压力
  image.thumbnail((200, 200))

  max_score = None
  dominant_color = None

  for count, (r, g, b, a) in image.getcolors(image.size[0] * image.size[1]):
    # 跳过纯黑色
    if a == 0:
      continue

    saturation = colorsys.rgb_to_hsv(r / 255.0, g / 255.0, b / 255.0)[1]

    y = min(abs(r * 2104 + g * 4130 + b * 802 + 4096 + 131072) >> 13, 235)

    y = (y - 16.0) / (235 - 16)

    # 忽略高亮色
    if y > 0.9:
      continue

    # Calculate the score, preferring highly saturated colors.
    # Add 0.1 to the saturation so we don't completely ignore grayscale
    # colors by multiplying the count by zero, but still give them a low
    # weight.
    score = (saturation + 0.1) * count

    if score > max_score:
      max_score = score
      dominant_color = (r, g, b)

  return dominant_color

如何使用:

from PIL import Image

print get_dominant_color(Image.open('logo.jpg'))

这样就会返回一个rgb颜色,但是这个值是很精确的范围,那我们如何实现百度图片那样的色域呢??
其实方法很简单,r/g/b都是0-255的值,我们只要把这三个值分别划分相等的区间,然后组合,取近似值。例如:划分为0-127,和128-255,然后自由组 合,可以出现八种组合,然后从中挑出比较有代表性的颜色即可。
当然我只是举一个例子,你也可以划分的更细,那样显示的颜色就会更准确~~大家赶快试试吧

PS:通过pil生成缩略图的简单代码

如果是单纯地生成缩略图,我们可以通过pil很简单地办到,这段代码会强行将图片大小修改成250x156:

from PIL import Image
img = Image.open('sharejs.jpg')
img = img.resize((250, 156), Image.ANTIALIAS)
img.save('sharejs_small.jpg')

相关推荐:

曜越推出 Dockpower FI 电源:插拔对接模块设计,升级可仅更换本体

7 月 8 日消息,Thermaltake(曜越,Tt)现已正式推出 Dockpower FI 电源。这一系列产品在现代模组线材电源的基础上更进一步,将单个电源分解为本体和输出面板模块两部分。曜越表示,这一“对接式”设计不仅在后续升级时仅需更换电源本体,也能便利 DIY 装机:用户可先将电源本体固定到机箱上,然后将线材与对接模块在机箱外部连接,最后再把电源本体与对接模块合为一体,避免了在机箱中走线...

曝英特尔 Nova Lake 处理器仅大核显升级 Xe3P,4P0E 模块基于 Intel 18AP

7 月 8 日消息,消息人士 @jaykihn0 近日进一步确认,Intel(英特尔)接下来要推出的 "Nova Lake" 客户端处理器仅有 12Xe“大核显”版本会将 GPU 架构升级到 Xe3P,4Xe 和 2Xe 的“小核显”仍将基于 Xe3 IP。"Nova Lake" 系列预计被称为酷睿 Ultra(第 4 代)。除移动端外英特尔还将推出配备 12Xe3P 的桌面 SKU,甚至还会有仅...

中际旭创官方回应康宁“玻璃桥”技术影响:并非光模块产品方案替代、公司多元化技术布局可充分适配

7 月 5 日消息,康宁公司在 6 月 24 日举行的“AI 数据中心光通信与互连技术大会”上推出了面向下一代 AI 数据中心架构的玻璃基光互连技术“Glass Bridge(玻璃桥)”,该产品基于玻璃波导技术,用于实现光纤与光子集成电路(PIC)之间的直接光学连接。综合投资者平台信息,中际旭创今天在投资者关系平台上答复投资者关心的问题时,有投资者提问“康宁玻璃桥的推出是否会对公司未来形成利空?”...

小米米家 iOS 版 App 获 11.6.200 更新:新增能源模块、优化设备批量配网等功能

感谢网友 太二真人 的线索投递! 6 月 29 日消息,小米米家 iOS 版 App 今天更新 11.6.200 版本,主要是为场景页面新增了能源模块,以及新增设备批量配网等功能,提升实用性。附本次更新详情如下:新增:场景页面新增能源模块,可查看家中部分智能设备用电情况优化:家庭自动切换功能,根据手机定位展示家庭,可在家庭管理中开启设备批量配网功能,发现多个 BLE Mesh 设备时,可以批量选择...

图片编辑工具老版本安全下载

必须从豌豆荚官方历史版本库下载图片编辑工具老版本,当前可查最新为9.36.118,早期v1.x或2021年前版本已下线;下载时核对文件名、大小及签名“Beijing Wandoujia Technology Co., Ltd.”,安装前须用SHA-256或adb验签,安装后立即关闭自动更新与通知。 想下载图片编辑工具的老版本,又担心来源不可靠、带病毒或被二次打包植入广告,必须从官方历史版本库直接获...

图片编辑工具app下载_图片编辑工具免费下载官方

推荐三款真正免费无内购的图片编辑APP:应用宝电脑版安装腾讯官方工具、安卓端“图片编辑加文字”官方版、iOS端App Store下载“图片编辑大师”,均需认准官方渠道并按指引完成登录或设置。 想在手机上快速给照片加文字、套模板、去水印或拼长图,又不想花钱开会员、被广告弹窗反复打断,就得找对官方渠道下载真正免费且无内购陷阱的图片编辑工具APP。 用应用宝电脑版在Windows上安装图片编辑工具 该方...

想要保存网页图片_Alook浏览器批量图片保存操作【说明】

Alook浏览器批量下载网页图片有三种方法:一、“网页图片”功能自动提取并勾选导出;二、“看图模式”长按触发,批量保存可见图片;三、通过文件管理器进入Cache目录手动提取缓存图片。 如果您在Alook浏览器中浏览网页时希望将其中多张图片一次性保存至本地设备,则需借助其内置的图片提取与批量操作机制。以下是实现该目标的具体方法: 一、通过“网页图片”功能提取并批量保存 该方式利用Alook对网页DO...

vivo浏览器如何导出所有图片_vivo浏览器网页图片批量保存技巧

可一次性导出vivo浏览器当前页面全部图片:一、另存为网页提取内嵌图片;二、查看源码批量复制图片URL;三、切换桌面版网站增强DOM识别;四、用智慧识图分批捕获可见图;五、超级截屏后手动裁剪提取。 如果您在vivo浏览器中浏览网页时希望一次性导出当前页面全部图片,而非逐张长按保存,则可能是由于网页采用懒加载、动态渲染或脚本屏蔽等机制,导致原生交互无法批量触发。以下是解决此问题的步骤: 一、使用“另...