python判断、获取一张图片主色调的2个实例
2014-04-10 00:00
706 查看
python判断图片主色调,单个颜色:
python判断一张图片的主色调,多个颜色:
#!/usr/bin/env python # -*- coding: utf-8 -*- import colorsys from PIL import Image import optparse def get_dominant_color(image): """ Find a PIL image's dominant color, returning an (r, g, b) tuple. """ image = image.convert('RGBA') # Shrink the image, so we don't spend too long analysing color # frequencies. We're not interpolating so should be quick. 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]): # Skip 100% transparent pixels if a == 0: continue # Get color saturation, 0-1 saturation = colorsys.rgb_to_hsv(r / 255.0, g / 255.0, b / 255.0)[1] # Calculate luminance - integer YUV conversion from # http://en.wikipedia.org/wiki/YUV y = min(abs(r * 2104 + g * 4130 + b * 802 + 4096 + 131072) >> 13, 235) # Rescale luminance from 16-235 to 0-1 y = (y - 16.0) / (235 - 16) # Ignore the brightest colors 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 def main(): img = Image.open("meitu.jpg") print '#%02x%02x%02x' % get_dominant_color(img) if __name__ == '__main__': main()
python判断一张图片的主色调,多个颜色:
#!/usr/bin/env python # -*- coding: utf-8 -*- import colorsys from PIL import Image import optparse def get_dominant_color(image): """ Find a PIL image's dominant color, returning an (r, g, b) tuple. """ image = image.convert('RGBA') # Shrink the image, so we don't spend too long analysing color # frequencies. We're not interpolating so should be quick. ## image.thumbnail((200, 200)) max_score = 1 dominant_color = [] for count, (r, g, b, a) in image.getcolors(image.size[0] * image.size[1]): # Skip 100% transparent pixels if a == 0: continue # Get color saturation, 0-1 saturation = colorsys.rgb_to_hsv(r / 255.0, g / 255.0, b / 255.0)[1] # Calculate luminance - integer YUV conversion from # http://en.wikipedia.org/wiki/YUV y = min(abs(r * 2104 + g * 4130 + b * 802 + 4096 + 131072) >> 13, 235) # Rescale luminance from 16-235 to 0-1 y = (y - 16.0) / (235 - 16) # Ignore the brightest colors 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.append((r, g, b)) return dominant_color def main(): img = Image.open("meitu.jpg") colors = get_dominant_color(img) for item in colors: print '#%02x%02x%02x' % item if __name__ == '__main__': main()
相关文章推荐
- python判断、获取一张图片主色调的2个实例
- Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与
- python获取糗百图片代码实例
- python获取糗百图片代码实例
- python获取beautifulphoto随机某图片代码实例
- python获取beautifulphoto随机某图片代码实例
- Python爬虫获取图片并下载保存至本地的实例
- Python实例2-获取某文件夹下指定类型的图片名,完成图片格式的转换并保存
- 从网络上获取一张图片简单的
- Python服务端,通过TCP发送一张图片给Android客户端,客户端把图片显示出来
- Python图片转换成矩阵,矩阵数据转换成图片的实例
- Python 判断是否为质数或素数的实例
- 【python】实例-判断用户输入数字的类型
- Android从服务器获取图片的实例方法
- 如何把多张图片合在一张图片里面显示?这里来个python + opencv的版本
- Python判断以什么结尾以什么开头的实例
- Python 判断文件或目录是否存在的实例代码
- Python 爬虫获取百度贴吧图片
- python获取网页中所有图片并筛选指定分辨率
- 20.python对类的操作(一)——获取对象信息,实例属性和类属性。