找回密码
 立即注册
首页 业界区 业界 [快速阅读十一] 伊拉克团队的TAGC(低光增强效果)算法 ...

[快速阅读十一] 伊拉克团队的TAGC(低光增强效果)算法实现。

阮蓄 2025-8-6 15:16:26
  原论文信息如下:
   论文标题: Tuning adaptive gamma correction (TAGC) for enhancing images in low light
  发表日期: 2025年07月
  作者: Ghufran Alhamzawi, Alfoudi Ali Saeed, Suha Mohammed Hadi等
  发表单位: University of Al-Qadisiyah, University of Information Technology and Communications等
  原文链接:
    http://arxiv.org/pdf/2507.19574v1=
  AGC的核心思想非常巧妙:它通过分析图像的亮度分布,自动计算出最适合的伽马校正参数。整个过程完全自动化,不需要任何人工干预。具体来说,它分为四个步骤:
    1. 计算亮度因子(L)根据人眼对不同颜色的敏感度,给RGB三个通道赋予不同权重。
            
1.png

    2. 计算平均颜色因子(μ)取RGB三个通道的平均值,作为整体颜色基准。
              
2.png

    3. 计算自适应伽马系数(γ)结合亮度因子和平均颜色因子,动态调整伽马值。
           
3.png

    4. 应用自适应伽马校正使用计算出的伽马值对图像进行增强处理。
           
4.png

  以上都是针对单个像素处理的。
  这个算法弄成代码也不是很复杂的,分享如下:
  1. void IM_TAGC_Enhancement(unsigned char *Src, unsigned char *Dest, int Width, int Height, int Stride)
  2. {
  3.     int Channel = Stride / Width;
  4.     float Inv255 = 1.0f / 255;
  5.     if (Channel == 3)
  6.     {
  7.         for (int Y = 0; Y < Height; Y++)
  8.         {
  9.             unsigned char *LinePS = Src + Y * Stride;
  10.             unsigned char *LinePD = Dest + Y * Stride;
  11.             for (int X = 0; X < Width; X++)
  12.             {
  13.                 float Blue = LinePS[0] * Inv255;
  14.                 float Green = LinePS[1] * Inv255;
  15.                 float Red = LinePS[2] * Inv255;
  16.                 float L = 0.2126f * Red + 0.7152 * Green + 0.0722 * Blue;
  17.                 float A = (Blue + Green + Red) / 3;
  18.                 float Gamma = 5.0f + (0.5f - L) * (1 - A) - 2 * L;
  19.                 LinePD[0] = ClampToByte((int)(powf(Blue, 2 / Gamma) * 255 + 0.4999999f));
  20.                 LinePD[1] = ClampToByte((int)(powf(Green, 2 / Gamma) * 255 + 0.4999999f));
  21.                 LinePD[2] = ClampToByte((int)(powf(Red, 2 / Gamma) * 255 + 0.4999999f));
  22.                 LinePS += 3;
  23.                 LinePD += 3;
  24.             }
  25.         }
  26.     }
  27. }
复制代码
  效果吗,确实能做到作者论文里的效果的,说明作者是没有作假的。
 
5.jpeg
       
6.jpeg

  
7.png
        
8.png

  不过对有些图像的处理效果就还是有点灰蒙蒙的,整体对比度不高。 
  至于算法的速度并不像有些文章里说的可以满足4K视频实时增强的,虽然上面提供的代码只是示意代码,可以进行大量的优化,但是最后的pow函数是个非常耗时的过程,而且似乎没有设么好的办法去避免这个计算,不算前面文章那个pow(x,1.5)可以转换为x * sqrt(x)。
  不过这个点和我一样还在研究传统算法的,又是伊拉克的团队,这份精神还是值得表扬的。
   Demo下载地址:https://files.cnblogs.com/files/Imageshop/TAGC.rar?t=1754469391&download=true

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册