마녀사냥 보면 특정 장면에서 색감이 화사한데 그 효과 따라해봄..
실행파일 이름 : hsv.exe
프로그램에 이미지 파일 떨궈서 실행시키거나 실행시켜서 파일 이름 입력하면 됨.
파이썬으로 만듦
링크 :
https://drive.google.com/file/d/0B8iYCPDKWc_NLXlMZVZiVDF5Y2c/view?usp=sharing
소스 :
from colorsys import *
import Image,math,os.path,sys
def Gamma(color,gamma):
return map(lambda c:c**(1./gamma),color)
def Contrast(color,contrast):
return map(lambda c:(1-contrast)*c+contrast*(1-math.cos(math.pi*c))/2,color)
if len(sys.argv)>1:
input=sys.argv[1]
else:
while 1:
input=raw_input('image file name:')
if os.path.isfile(input):
break
print 'Invalid filename'
split=os.path.splitext(input)
new_name=split[0]+'_'+split[1]
img=Image.open(input)
pixels=img.load()
print 'size:'+str(img.size)
for j in range(img.size[1]):
for i in range(img.size[0]):
r,g,b=pixels[i,j]
r,g,b=r/255.,g/255.,b/255.
r,g,b=Gamma((r,g,b),2)
r,g,b=Contrast((r,g,b),.5)
r,g,b=Gamma((r,g,b),.5)
h,s,v=rgb_to_hsv(r,g,b)
h=Contrast([h],.1)[0]
v=Gamma([v],1.3)[0]
r,g,b=hsv_to_rgb(h,s,v)
pixels[i,j]=int(r*255),int(g*255),int(b*255)
img.save(new_name)
print 'Done!' |
|