我有两个相同场景的bmp文件,我想确定其中一个是否比另一个更亮。类似地,我有一组具有不同对比度的bmps和另一组具有不同饱和度的bmps。如何比较这些图像的亮度、对比度和饱和度?这些测试图像由传感器制造商提供的工具保存。我用的是gcc 4.5。
发布于 2012-06-27 21:59:28
要比较两个图像的亮度,您需要比较像素的灰度值(是的,逐个比较)。在RGB颜色空间中,亮度(灰度值)是R、G和B的平均值,因此可以得到brightness = (R+G+B) / 3
比较对比度,特别是饱和度将被证明不是那么容易,首先你可以看看HSL and HSV,但总的来说,我建议你买一本关于图像处理主题的好书。
发布于 2012-06-29 23:42:23
(R+G+B)/3的答案真的不是一个很好的亮度近似值(至少从我们今天所知)!
brightness 你真正应该做的是转换成另一种色阶,并使用包含亮度的色阶的通道来比较亮度。看这里!
Formula to determine brightness of RGB color
这里有很多关于转换或RGB转换为亮度等问题的答案。
Contrast Contrast是像素值在整个可能像素值范围内扩散的函数。人们通过将所有像素的直方图(其中x轴表示a像素值,y轴表示具有该值的像素的数量)放在一起来了解对比度,并分析直方图以了解在整个范围内是否有良好的分布。比较对比度的方法有很多,但是一个很好的起点是找到每个图像的像素值中心点(直方图数据的平均值),以及一些直方图宽度参数(假设宽度大约是中心点,并且大到足以包含所有像素的90% ),然后比较两个图像的中心和宽度参数。这只是一个起点。
饱和度要比较饱和度,可以将图像转换到HSL色空间。HSL中的S代表饱和度。在这个颜色空间中比较饱和度就像上面概述的比较亮度一样!
https://stackoverflow.com/questions/11227340
复制相似问题