照片处理-阿宝色滤镜

照片处理-阿宝色滤镜

一、什么是阿宝色阿宝色

阿宝色是一位摄影师名为阿宝(网名:aibao),原名董立竑,由他在2008年左右所创的一种特别的色彩。这种色彩主要是,橘色的肤色和偏青色的背景色调为主,整体的视觉效果非常清新、唯美,因而得到大家的喜爱。

二、Lab色彩模型实现a宝色(photoshop)参考百科:

Lab 把颜色分成 L(黑->白),a(绿->红), b(蓝->黄)三通道。

对于风景人物照片,自然风景绿色为主、人的肤色红润为主。所以a通道中红色和绿色的部分比较明亮,因此将a通道中的数据复制到b通道中,增加蓝色和黄色,这样三通道混合后人物的肤色会变为橘色,环境中的绿色会变得青色,整体风格会显得高冷、缥缈。

PS中如何调整Lab,读者感兴趣可以在网上找找,有很多教程。简单说明下,图像->模式->Lab->选中a通道全选复制数据(cmd +A / cmd + c)->选中b通道粘贴(cmd + v),最后再切回RGB通道导出,可以得到阿宝色的图片。可能颜色不够舒适,还可以调整饱和度、亮度等属性。

三、基于LUT的代码实现将原始LUT导入PS 按照上一步制作阿宝色的步骤,对LUT进行调节,得到阿宝色LUT

左边为原始LUT,右边为阿宝色LUT

右边为阿宝色效果

完整代码如下:

读取图片像素部分代码省略,主要逻辑就是一个3D LUT图标查找映射

代码语言:javascript代码运行次数:0运行复制 static int f_Filter512(unsigned char* srcData, int width ,int height, int stride, unsigned char*Map)

{

int i, j, r, g, b, offset, pos, nx, ny, k;

unsigned char* pSrc = srcData;

offset = stride - (width * 4);

// 循环遍历原始图片像素

for(j = 0; j < height; j++)

{

for(i = 0; i < width; i++)

{

b = pSrc[0];

g = pSrc[1];

r = pSrc[2];

// 按照3D LUT规则,进行查表

k = (b >> 2);

nx = (int)(r >> 2) + ((k - ((k >> 3) << 3)) << 6);

ny = (int)(((b >> 5) << 6) + (g >> 2));

pos = (nx * 4) + (ny * 512 * 4);

pSrc[0] = Map[pos];

pSrc[1] = Map[pos + 1];

pSrc[2] = Map[pos + 2];

pSrc += 4;

}

pSrc += offset;

}

return 0;

};

相关风雨