生成一个值以反映图像的平均亮度

dib*_*ibs 2 linux bash image brightness

我需要确定图像是否高于某个亮度.使用0 - 255的比例我想在此范围内生成一个值以反映图像亮度.

即白色图像为255,黑色图像为0.

所有这些都需要通过我目前正在构建的bash脚本来进行.我不知道lib可以为我做什么图像.

Gre*_*Cat 6

一般来说,这是信号处理的经典问题之一,根据你如何定义"亮度",有几种方法.对于图像的"亮度",声音信号的"响度"等通常是相同的.

关于可以用作通用"亮度"的一些想法是:

  • 所有像素的平均值(即,将所有像素的所有亮度相加,然后除以像素的总量,即宽度*高度).
  • 建立亮度分布的直方图,然后在直方图中选择这样的点x,图像中所有像素的98%(95%,90%,70% - 这个数字可以变化)将比这个x更不亮.它被称为百分位数.
  • 计算所有像素的"均方根"(RMS)(所有像素的总和平方,除以像素的总量,从该像素中提取平方根).

有多个图像库可以产生良好的结果.从shell脚本中使用的最简单的可能是ImageMagick/GraphicsMagick - 你可以获得两个简单的平均值,并做一些更复杂的直方图来检查百分位数,如果你想.


Jon*_*röm 5

尝试 ImageMagick灰色统计数据直方图

convert rose: -colorspace gray -format "%[fx:100*mean]%%" info:
Run Code Online (Sandbox Code Playgroud)