自动伽马校正(Auto Gamma Correction)算法

您所在的位置:网站首页 电视图像伽马最佳设置参数 自动伽马校正(Auto Gamma Correction)算法

自动伽马校正(Auto Gamma Correction)算法

2023-06-05 13:20| 来源: 网络整理| 查看: 265

自动伽马校正(Auto Gamma Correction)算法

微信公众号:幼儿园的学霸

目录

文章目录 自动伽马校正(Auto Gamma Correction)算法目录理论代码实现参考资料

理论

在对图像进行处理过程中,查找到一篇对图像进行自动gamma校正的论文,论文名称及链接见参考文献1.

文章的核心描述如下:

Average of brightness is simple element that can be computed in the least amount of time. Basic approach in this article present a technique to estimate appropriate gamma based on average brightness. …, We suppose a gamma which changes average of brightness to 1/2, …

其大概意思是:假定一副合理的图像其所有像素(归一化后)的均值应该在0.5左右,那么自动伽马校正的伽马值就要使得目标图像向这个目标前进。 假设X是图像的平均值,那么自动伽马校正所需要的伽马值应该基于下列公式进行计算: 公式 公式描述

根据论文描述:

This paper proposes a method which estimates a power that transport average amount of brightness to center of histogram.

即通过自动gamma校正后图像的灰度直方图将向中心进行偏移。

代码实现

按照上述公式,可以很快实现该算法。代码如下。 1.在实现过程中,采用了查找表的思想,以加快图像处理速度。 2.针对多通道图像,对各通道的gamma再次进行求均值,作为gamma校正的gamma值,以避免多通道图像的偏色现象。该修改在原论中并不存在。

// // Created by liheng on 11/22/20. // #include #include #include //自动Gamma校正算法 //Input Param:src--输入图像,3 channels or 1channels //Output Param:dst--归一化后的图像,type as src //Return: null void AutoGammaCorrection(const cv::Mat &src, cv::Mat &dst) { const int channels = src.channels(); const int type = src.type(); assert( type==CV_8UC1 || type==CV_8UC3 ); //======计算gamma值========// auto mean = cv::mean(src);//求均值 mean[0] = std::log10(0.5) / std::log10(mean[0]/255);//gamma = -0.3/log10(X) if( 3==channels ) { mean[1] = std::log10(0.5) / std::log10(mean[1]/255);//gamma = -0.3/log10(X) mean[2] = std::log10(0.5) / std::log10(mean[2]/255);//gamma = -0.3/log10(X) //多通道图像,对求得的gamm再次平均,避免偏色现象 auto mean3 = (mean[0]+mean[1]+mean[2])/3; mean[0]=mean[1]=mean[2] = mean3; } //=======计算gamma查找表,减少计算量=======// //查找表,数组的下标对应图片里面的灰度值 //lut(0,10)=(50,60,70)表示通道1灰度值为10的像素其对应的值为50; // 通道2灰度值为10的像素其对应的值为60; // 通道3灰度值为10的像素其对应的值为70 cv::Mat lut(1,256,src.type()); if( 1==channels ) { for(int i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3