听雨轩

  一只喵的故事

 了 解 他 → 

闲的蛋疼系列之那个裙子到底什么颜色

2015-02-27 15:02

原创文章,转载请注明出处和作者。

test.jpg


  没错就是这个货到底是什么颜色??


  各种说法层出不穷,我才不会说我看到的就是白金色的呢,但是。。。。是不是因为所谓周围颜色干扰之类的造成的错觉呢。。。。


  实践出真知,截取图中两块同样大小相对颜色稳定的区域然后求出平均颜色来看看~


  我截取的区域是(110,190)和(115,320)为起点的90*50的区域,当然,稍微粗略一点,但是基本已经可以看出问题来了。


# -*- coding: utf-8 -*-
from PIL import Image, ImageEnhance

#截取区域的宽和高
WIDTH = 90
HEIGHT = 50

#截取区域的起始坐标
BRIGHT_X = 110
BRIGHT_Y = 190
DARK_X = 115
DARK_Y = 320

im = Image.open('test.jpg','r')

bright_part = Image.new(im.mode, (WIDTH, HEIGHT), 0)
dark_part = Image.new(im.mode, (WIDTH, HEIGHT), 0)

bright_part.paste(im.crop((BRIGHT_X, BRIGHT_Y, BRIGHT_X + WIDTH, BRIGHT_Y +HEIGHT)), (0, 0))
dark_part.paste(im.crop((DARK_X, DARK_Y, DARK_X + WIDTH, DARK_Y +HEIGHT)), (0, 0))

bright_part.save('bright.jpg')
dark_part.save('dark.jpg')


bright.jpg  dark.jpg


  (现在看起来那个深色部分真的是有点像灰褐色了,浅色部分真的是浅蓝色)


  求平均值:


# -*- coding: utf-8 -*-
from PIL import Image, ImageEnhance

#截取区域的宽和高
WIDTH = 90
HEIGHT = 50

#截取区域的起始坐标
BRIGHT_X = 110
BRIGHT_Y = 190
DARK_X = 115
DARK_Y = 320

def average(lst,order):
	l = [_[order] for _ in lst]
	return sum(l) / len(l)

im = Image.open('test.jpg','r')

bright_part = Image.new(im.mode, (WIDTH, HEIGHT), 0)
dark_part = Image.new(im.mode, (WIDTH, HEIGHT), 0)

bright_part.paste(im.crop((BRIGHT_X, BRIGHT_Y, BRIGHT_X + WIDTH, BRIGHT_Y +HEIGHT)), (0, 0))
dark_part.paste(im.crop((DARK_X, DARK_Y, DARK_X + WIDTH, DARK_Y +HEIGHT)), (0, 0))

bright_part.save('bright.jpg')
dark_part.save('dark.jpg')

bright_data = list(bright_part.getdata())
dark_data = list(dark_part.getdata())

average_rgb_of_bright_data = (average(bright_data, 0),average(bright_data, 1),average(bright_data, 2))
average_rgb_of_dark_data = (average(dark_data, 0),average(dark_data, 1),average(dark_data, 2))

result = Image.new(im.mode, (400, 200), 0)

result.paste(average_rgb_of_bright_data, (0,0,400,100))
result.paste(average_rgb_of_dark_data, (0,100,400,200))
result.save('result.jpg')


result.jpg


  因为是在阳光下亮度比较高一点~~我们稍稍吧亮度降低一点然后再看看效果~


  调整亮度:


# -*- coding: utf-8 -*-
from PIL import Image, ImageEnhance

#截取区域的宽和高
WIDTH = 90
HEIGHT = 50

#截取区域的起始坐标
BRIGHT_X = 110
BRIGHT_Y = 190
DARK_X = 115
DARK_Y = 320

def average(lst,order):
	l = [_[order] for _ in lst]
	return sum(l) / len(l)

im = Image.open('test.jpg','r')

bright_part = Image.new(im.mode, (WIDTH, HEIGHT), 0)
dark_part = Image.new(im.mode, (WIDTH, HEIGHT), 0)

bright_part.paste(im.crop((BRIGHT_X, BRIGHT_Y, BRIGHT_X + WIDTH, BRIGHT_Y +HEIGHT)), (0, 0))
dark_part.paste(im.crop((DARK_X, DARK_Y, DARK_X + WIDTH, DARK_Y +HEIGHT)), (0, 0))

bright_part.save('bright.jpg')
dark_part.save('dark.jpg')

bright_data = list(bright_part.getdata())
dark_data = list(dark_part.getdata())

average_rgb_of_bright_data = (average(bright_data, 0),average(bright_data, 1),average(bright_data, 2))
average_rgb_of_dark_data = (average(dark_data, 0),average(dark_data, 1),average(dark_data, 2))

result = Image.new(im.mode, (400, 200), 0)

result.paste(average_rgb_of_bright_data, (0,0,400,100))
result.paste(average_rgb_of_dark_data, (0,100,400,200))
result.save('result.jpg')

dark_pic = ImageEnhance.Brightness(result).enhance(0.4)
dark_pic.save('dark_result.jpg')


dark1.jpg


  问我刚才在干嘛。。。。看看这篇文章也知道我刚刚从盐缸里爬出来~~XD


 技术趣谈