魔扣论坛

魔扣源码论坛业务
查看: 900|回复: 7

美狐滤镜sdk技术(二):浅析基础颜色滤镜算法

[复制链接]
  • TA的每日心情
    慵懒
    2020-4-9 16:53
  • 签到天数: 89 天

    [LV.6]每天都来

    88

    主题

    4

    回帖

    492

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    899
    贡献
    359
    威望
    1
    发表于 2019-9-5 16:45:22 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    无论是日常拍照记录生活还是直播短视频应用场景下的视频拍摄,都离不开添加滤镜的步骤,虽然现阶段来看原质相机像素各方面性能都有质的提升,但是为了满足用户对照片或视频质感效果的需求,在APP中接入滤镜sdk成为了当下最流行的方式。而滤镜sdk技术也因此在业内逐渐受欢迎,本文以基础的颜色滤镜算法为主简单分享下相关内容。
    什么是颜色滤镜
    美狐滤镜sdk中所包含的颜色滤镜,其实也可以认为是调色滤镜,是最基础也是最常见的滤镜。即任何通过调节图像像素值的亮度、饱和度、对比度、色相等方法,所得到的不同于原图像颜色的效果,都可以看作是颜色滤镜。
    颜色滤镜的实现原理
    1.PS饱和度调节算法的实现原理
    假设所使用图片原图像素为P,RGB颜色空间所对应的颜色分量为R/G/B,饱和度调整参数为saturation,范围是[-100,100],则可参考代码如下所示:
    float k = saturation/100
    rgbMin = min( K. G, B)
    rgbMax = max( R, G, B)
    delta = (rgbMax —rgbMin) /255 .0
    f(delta = O)return RGB
    vlaue = (rgbMax±rgbMin)/ 255
    L = value /2
    S = L < 0.5 ?(deltaIvalue) : delta 1(2 — value)
    if (k>= 0)
    {
    alpha=k±S>=1?S: 1—k
    alhpa = 1/alpha—1
    }
    else
    {
    alpha=k
    }
    RGB=RGB+(RGBL*255)*alpha
    2.C语言实现
    可供参考代码如下所示:
    intf_Stauration(unsigned char* srcData, int width, int height, int stride, intsaturation)
    {
          unsigned char* pSrc = srcData;
          int r, g, b, rgbMin, rgbMax;
          int k = saturation / 100.0f * 128;
          int alpha = 0;
          for(int j = 0; j < height; j++)
          {
               for(int i = 0; i < width; i++)
               {
                     r = pSrc[2];
                     g = pSrc[1];
                     b = pSrc[0];
                     rgbMin = MIN2(MIN2(r, g), b);
                     rgbMax = MAX2(MAX2(r, g), b);
                     int delta = (rgbMax - rgbMin);
                     int value = (rgbMax + rgbMin);
                     if(delta ==0)
                     {
                          pSrc += 4;
                          continue;
                     }               
                     int L = value >> 1;
                     int S = L < 128 ? (delta << 7) / value delta << 7) / (510 - value);
                     if(k >= 0)
                     {
                          alpha = k + S >= 128 ? S : 128 - k;
                          alpha = 128 * 128 / alpha - 128;
                     }
                     else
                          alpha = k;
                     r = r + ((r - L) * alpha >> 7);
                     g = g + ((g - L) * alpha >> 7);
                     b = b + ((b - L) * alpha >> 7);
                     pSrc[0] = CLIP3(b, 0, 255);
                     pSrc[1] = CLIP3(g, 0, 255);
                     pSrc[2] = CLIP3(r, 0, 255);
                     pSrc += 4;
               }
          }
          return 0;
    }
    3.颜色增强滤镜
    可供参考代码如下所示:
    intf_ColorFilter(unsigned char* srcData, int width, int height, int stride)
    {
          return f_Saturation(srcData, width, height, stride, 41);
    }
    以上就是美狐滤镜sdk中关于制作颜色滤镜的大概流程,以PS模拟的滤镜效果并结合参考代码,这样一来在开发滤镜sdk的过程中就可以利用该算法程序(滤镜算法)去处理图片或视频。
    声明:以上内容均为作者本人原创,转载需注明作者及原文链接,欢迎转载分享。

    该用户从未签到

    0

    主题

    246

    回帖

    494

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    248
    贡献
    248
    威望
    0
    发表于 2019-9-5 16:45:51 | 显示全部楼层
    花的清香溢满季节的转换,云的多姿展示夏天的走远,月的明朗邀来金秋的缠绵,心的问候播撒友情的思念,心愿的美好祈祷快乐永远,亲爱的朋友,魔扣源码论坛祝你天天快乐!

    该用户从未签到

    1

    主题

    249

    回帖

    499

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2019-11-3 17:20:40 | 显示全部楼层
    网络里有一种浅浅的神秘,小屋里有一种深深的情谊,回帖里有一种淡淡的惦记,祝福里有一种浓浓的心意,真诚的友谊一定会随缘相聚,魔扣源码论坛是朋友就会牢牢记在心里,生活的蓝天就会无限的美丽!祝福你我亲爱的朋友!祝你周末快乐!

    该用户从未签到

    1

    主题

    273

    回帖

    547

    积分

    高级魔扣

    Rank: 4

    魔扣币
    273
    贡献
    273
    威望
    0
    发表于 2019-11-26 16:19:04 | 显示全部楼层
    支持,楼下的跟上哈~

    该用户从未签到

    0

    主题

    240

    回帖

    480

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    240
    贡献
    240
    威望
    0
    发表于 2020-4-11 19:56:49 | 显示全部楼层
    最温暖的不是春天,而是朋友的笑脸;最惬谢意的不是阳光,而是朋友的祝福;最浪漫的不是桃花漫天飞舞季节,而是我们彼此牵挂和那温馨的问候!祝愿好友魔扣源码论坛天天甜甜蜜蜜快快乐乐!

    该用户从未签到

    2

    主题

    273

    回帖

    548

    积分

    高级魔扣

    Rank: 4

    魔扣币
    273
    贡献
    273
    威望
    0
    发表于 2020-5-31 15:26:45 来自手机 | 显示全部楼层
    生活真他妈好玩,魔扣源码论坛,因为生活老他妈玩我。

    该用户从未签到

    1

    主题

    255

    回帖

    511

    积分

    高级魔扣

    Rank: 4

    魔扣币
    255
    贡献
    255
    威望
    0
    发表于 2020-6-15 11:38:30 | 显示全部楼层
    是爷们的娘们的都帮顶!大力支持

    该用户从未签到

    0

    主题

    254

    回帖

    508

    积分

    高级魔扣

    Rank: 4

    魔扣币
    254
    贡献
    254
    威望
    0
    发表于 2020-9-2 19:56:36 来自手机 | 显示全部楼层
    有了芬芳的玫瑰,才有蝴蝶的飞舞;有了蔚蓝的海洋,才有鱼儿的畅游;有了朋友的夜空,才有星光的灿烂;有了我们的博客空间,有了我们的展示平台!有了好友的出现,才有人生的精彩!魔扣源码论坛梦中人祝朋友周末愉快!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表