美文网首页
照片处理-阿宝色滤镜

照片处理-阿宝色滤镜

作者: 天叔 | 来源:发表于2020-11-04 14:16 被阅读0次

    一、什么是阿宝色

    阿宝色

    阿宝色是一位摄影师名为阿宝(网名: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的代码实现

    1. 将原始LUT导入PS
    2. 按照上一步制作阿宝色的步骤,对LUT进行调节,得到阿宝色LUT


      左边为原始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;
    };
    

    相关文章

      网友评论

          本文标题:照片处理-阿宝色滤镜

          本文链接:https://www.haomeiwen.com/subject/jdrgvktx.html