我对均衡彩色图像感兴趣。根据this的文章,我所做的是从RGB图像开始并将其转换为YIQ值。之后,我可以通过考虑由Y给出的亮度水平来获得图像的灰度版本。对该灰度图像应用算法,可以得到原始图像的灰度版本的或多或少的均衡版本。我想生成一个新的RGB图像,保留原始图像的颜色并校正亮度值,以获得原始图像的亮度均衡的RGB版本。在不改变颜色的情况下更改图像亮度
首先,我尝试将YIQ值转换回RGB,但考虑到Y均衡后的修改值。通过这种方法,我得到了[0,1]以外的RGB值。
因为这第一种方法不起作用,我试图用相对成功的程度来做以下事情。对于每个像素,如果Y'是均衡后的亮度水平,并且Y是原始亮度值,则我考虑由R'=(Y'/ Y)R,G'=(Y'/ Y)G给出的新RGB值和B'=(Y'/ Y)B。也就是说,我增加了RGB分量分布中的亮度等级保持比例。
即使第二种方法奏效,我仍然存在这样的问题,即原始图像中的一些颜色在均衡之后看起来不同。取决于原始图像,这种效果或多或少是可以理解的。我的问题是,在校正亮度值的情况下,将原始RGB图像转换为新图像的颜色保存方法是什么?请注意,在第二种方法(btw,唯一一个工作),我必须用公式中的(Y'/ Y)替换(Y'/ Y)和(1)中最大值之间的最小值/ R),(1/G)和(1/B),所以在任何组件中我都不会超过1。当然,这是另一个缺点,因为对于某些像素,我无法获得在灰度均衡步骤中计算的亮度级别。
我没有完全理解为什么第一种方法不起作用?均衡的Y值在[0,1]之间,并且在使用新的Y和旧的I和Q之后,您获得的RGB磨砂值大于1? –
@AmitayNachmani是或低于零。但是,如果你仔细想想,它确实有道理。三个值RGB用于计算每个YIQ值。如果修改Y得到Y',只要这个新值Y'是Y'IQ可能由某些有效的RGB坐标生成的,就可以返回有效的RGB坐标。 – ORerwannabe
是的,你是对的我的坏。 –