Image processing 如何缩放图像中的像素以调整亮度?
我有一张照片的灰度图像。我已经确定图像的某些部分照明不足,亮度Y=0.8的像素实际上应该调整为90%的灰色,也就是说,该像素的亮度应该为0.9。我的问题是如何缩放附近的其他像素?我很确定将所有亮度乘以9/8是错误的,因为我隐约记得听说为了看起来均匀,缩放必须是非线性的。但我很难找到一个能让我进步的方程式。(当然,我正在编写一个程序,对大量照片进行调整。) 我的像素的来源是pbmplus PGM格式,手册页上说: 每个灰度值都是一个与图像强度成比例的数字 像素,由CIE Rec.709伽马传递函数调整。(那 传递函数指定伽马数为2.2,并具有线性 小强度部分)。因此,零值为黑色。 Maxval值表示CIE D65白色和最强烈的值 在图像和可能与该图像进行比较的任何其他图像中 如果我能更好地理解这一点,我可能会对如何进行有更好的想法 我发现了一个相关的问题Image processing 如何缩放图像中的像素以调整亮度?,image-processing,gamma,pbmplus,Image Processing,Gamma,Pbmplus,我有一张照片的灰度图像。我已经确定图像的某些部分照明不足,亮度Y=0.8的像素实际上应该调整为90%的灰色,也就是说,该像素的亮度应该为0.9。我的问题是如何缩放附近的其他像素?我很确定将所有亮度乘以9/8是错误的,因为我隐约记得听说为了看起来均匀,缩放必须是非线性的。但我很难找到一个能让我进步的方程式。(当然,我正在编写一个程序,对大量照片进行调整。) 我的像素的来源是pbmplus PGM格式,手册页上说: 每个灰度值都是一个与图像强度成比例的数字 像素,由CIE Rec.709伽马传递函数
谢谢你让我走上正轨。我接受了你的回答,然后在其中添加了一些信息。你可能需要,这将保持真黑和真白的正确性,同时弯曲中间的值 当输入在范围(0.0,1.0)内时,伽马调整公式为: …其中
gamma
将在小于1.0时变亮,在大于1.0时变暗
要将0.8推高到0.9,您需要计算log(0.9)/log(0.8)
,以获得gamma值
注意,这是一个非常多的公式,它是数学上最简单的,将黑色和白色保存为唯一的颜色(一些人认为重要的)-然而,没有一个正确的公式给你什么是“真”。
附录:我验证了gamma校正可以应用于已经gamma编码的值。在markdown中很难记下数学,但关键的代数定律是
(y**a)**b == y**(a*b) == y**(b*a) == (y**b)**a
如果应用此定律,则可以确定gamma校正可转换,因此可以将gamma校正应用于已校正的值-NR您是否试图增加灰度图像的对比度?不,实际上,我有一张图像,我认为拍摄对象的亮度(亮度/反照率)大致一致,但照片是在不均匀照明下拍摄的。我正在尝试纠正照明不良,并生成一幅代表原始拍摄对象的图像。选择什么伽马值?我拥有的像素已经是gamma编码的,这有关系吗?
(y**a)**b == y**(a*b) == y**(b*a) == (y**b)**a