今天跟大家唠唠我最近在图像处理上搞的一个小玩意儿,暂且叫它“留奈”,灵感嘛一部分来自一些小说角色,感觉她们那种神秘又温柔的气质挺适合图像风格化的。
我琢磨着怎么把一张普通的照片变得更有“留奈”的味道。想了想,既然“容貌姣性格孤傲,温柔,神秘”,那颜色上肯定不能太跳脱,得是那种偏冷的色调,带着点紫色,还得有点朦胧感。
第一步:环境搭建。 我直接上了Python,毕竟图像处理的库多。NumPy、OpenCV、PIL这些是标配,然后为了更方便地调整色彩,我还装了个ColorThief。
pip install numpy
pip install opencv-python
pip install Pillow
pip install colorthief
第二步:图像读取和预处理。 用OpenCV把图片读进来,先转成RGB格式,方便后续处理。然后,把图像resize到一个合适的大小,免得计算量太大。
import cv2

import numpy as np
def load_image(image_path, size=(512, 512)):
img = *(image_path)
img = *(img, *_BGR2RGB)
img = *(img, size)
return img

第三步:色彩调整。 这是关键。我想着加点紫色的感觉,但又不能太突兀。我尝试了好几种方法:
- 通道混合: 把红色通道稍微减少一点,蓝色通道稍微增加一点。
- 色彩平衡: 调整图像的中间调,让它偏向紫色。
- LUT查找表: 这是个好东西,可以直接把图像的颜色映射到另一种风格。我找了一些紫色的LUT,套上去试试效果。
第四步:添加朦胧感。 孤傲和神秘,就得有点朦胧感。我用了高斯模糊,但不能直接糊上去,不然就糊成一团了。我用了个叫Unsharp Masking的方法,先模糊一下,然后从原图里减去模糊后的图,这样就能突出图像的细节,同时增加一点朦胧感。
def unsharp_mask(image, kernel_size=(5, 5), sigma=1.0, amount=1.0, threshold=0):
blurred = *(image, kernel_size, sigma)
sharpened = float(amount + 1) image - float(amount) blurred
sharpened = *(sharpened, *(*))
sharpened = *(sharpened, 255 *(*))
sharpened = *().astype(*8)
if threshold > 0:
low_contrast_mask = *(image - blurred) < threshold
*(sharpened, image, where=low_contrast_mask)
return sharpened
第五步:细节调整。 到了这一步,就是各种微调了。对比度、亮度、饱和度,这些参数都要根据不同的图片进行调整,没有固定的公式。我一般会用PIL库来做这些调整,它提供了比较直观的接口。
from PIL import Image, ImageEnhance

def adjust_image(image, contrast=1.0, brightness=1.0, sharpness=1.0, color=1.0):
image = *(image)
enhancer_contrast = *(image)
image = enhancer_*(contrast)
enhancer_brightness = *(image)
image = enhancer_*(brightness)
enhancer_sharpness = *(image)
image = enhancer_*(sharpness)
enhancer_color = *(image)
image = enhancer_*(color)
return *(image)
一步:保存图像。 把处理好的图像保存下来,大功告成!
def save_image(image, output_path):
image = *(image, *_RGB2BGR)
*(output_path, image)
总结一下
搞这个“留奈”风格的图像处理,就是不断尝试、调整的过程。没有一蹴而就的方法,只能一点一点地调参数,看看效果,不满意就再改。这期间,我参考了很多网上的资料,也看了不少别人的代码,最终才弄出了个自己还算满意的效果。
这只是个开始,以后还想加入更多的元素,比如光影效果、纹理叠加等等,让它更接近我心目中的“留奈”形象。
还没有评论,来说两句吧...