【问题标题】:What luminosity value is considered as "light"?什么光度值被认为是“光”?
【发布时间】:2019-08-04 01:54:31
【问题描述】:

我必须决定图像是亮还是暗,我有这样的等式:

double luminosity = ((r * 0.2126) + (g * 0.7152) + (b * 0.0722)) / 255

使用这个等式,什么像素值被认为是“光”?

在决定图像是浅色/深色方面是否有其他流行/最佳做法

【问题讨论】:

    标签: java image colors rgb


    【解决方案1】:

    您的值范围是从 r、g、b 等于 0(像素为黑色)到 r、g、b 都等于 255(像素为白色)时 - 将其插入将为我们提供 [0, 1]。

    一种方法是简单地说 - 如果亮度值低于 0.5,这是“暗像素”,如果亮度大于 0.5 - 这是“亮像素”。

    如果图像内部有大部分暗像素,则图像是暗的。如果图像中的大多数像素是亮的,则图像是亮的。或者,获取图像中每个像素的亮度值并取平均值 - 然后使用平均亮度来确定图像是亮还是暗。

    个别像素示例的一些值:

    rgb(245, 100, 3) = luminosity 0.49 - darker
    

    rgb(245, 120, 3) = luminosity 0.54 - lighter
    

    rgb(100, 140, 3) = luminosity 0.48 - darker
    

    rgb(100, 200, 3) = luminosity 0.64 - lighter
    

    【讨论】:

    • 我应该使用中位数,还是例如Summed Area table 或某种直方图?
    • @kkot 它可以简单到只计算“暗像素”和“亮像素”并比较每个像素的数量,或者您可以取所有像素的平均值。你让它有多复杂取决于你:)
    • 我同意这个答案。事实上,中间灰度是 0.5 [注意:我们假设 R、G、B 伽马校正]。照相机曝光,使图像 [或用于曝光的点] 具有一半的灰度亮度。
    • 平均所有像素很容易。使用3长。添加所有红色,添加蓝色,添加所有绿色。然后平均,然后计算光度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多