阿宝色
阿宝色是一位摄影师名为阿宝(网名:aibao),原名董立竑,由他在2008年左右所创的一种特别的色彩。这种色彩主要是,橘色的肤色和偏青色的背景色调为主,整体的视觉效果非常清新、唯美,因而得到大家的喜爱。
参考百科:
Lab 把颜色分成 L(黑->白),a(绿->红), b(蓝->黄)三通道。
对于风景人物照片,自然风景绿色为主、人的肤色红润为主。所以a通道中红色和绿色的部分比较明亮,因此将a通道中的数据复制到b通道中,增加蓝色和黄色,这样三通道混合后人物的肤色会变为橘色,环境中的绿色会变得青色,整体风格会显得高冷、缥缈。
PS中如何调整Lab,读者感兴趣可以在网上找找,有很多教程。简单说明下,图像->模式->Lab->选中a通道全选复制数据(cmd +A / cmd + c)->选中b通道粘贴(cmd + v),最后再切回RGB通道导出,可以得到阿宝色的图片。可能颜色不够舒适,还可以调整饱和度、亮度等属性。
左边为原始LUT,右边为阿宝色LUT
右边为阿宝色效果
完整代码如下: 读取图片像素部分代码省略,主要逻辑就是一个3D LUT图标查找映射
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;
};