2

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

即白色图像是255,黑色图像是0。

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

4

2 回答 2

6

一般来说,它是信号处理的经典问题之一,根据您如何定义“亮度”,有几种方法。图像的“亮度”、声音信号的“响度”等通常是相同的。

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

  • 所有像素的平均值(即所有像素的所有亮度相加,然后除以像素总数,即宽*高)。
  • 建立一个亮度分布的直方图,然后在该直方图中选择这样的点x,即图像中所有像素的 98%(95%、90%、70% - 这个数字可能会有所不同)的亮度将低于此x。它被称为百分位数。
  • 计算所有像素的“均方根”(RMS)(将所有像素的平方相加,除以像素总数,从中提取平方根)。

有多个图像库可以产生良好的结果。从 shell 脚本中最容易使用的可能是 ImageMagick/GraphicsMagick——如果你愿意,你可以得到简单的平均值,也可以做一些更复杂的直方图来检查百分位数。

于 2010-11-21T22:59:00.037 回答
5

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

convert rose: -colorspace gray -format "%[fx:100*mean]%%" info:
于 2010-11-21T22:53:48.283 回答