您可以使用 ImageMagick 轻松做到这一点,就像这样。假设我们要计算红色像素...
# First create a little test strip with black, white, red, green and blue parts
convert -size 50x50 xc:black xc:white xc:red xc:lime xc:blue +append out.png
现在将任何非红色转换为黑色,以便只保留red 像素
convert out.png -fill black +opaque red n.png
现在通过克隆生成的图片并使克隆全黑(通过将所有内容设置为零)来计算红色像素,并运行比较以计算有多少像素不是黑色
convert n.png \
\( +clone -evaluate set 0 \) \
-metric AE -compare \
-format "%[distortion]" info:
2500
2500 在我看来是 50 x 50 像素 :-)
注意
AE 是绝对误差,即不同像素数量的简单计数。 -format "%[distortion]" info: 部分导致 ImageMagick 将计数 (%distortion) 输出为数字 (info:) 而不是图像。
显然,您将red 替换为"#333212" 来解决您的问题。
您也可以一次完成所有这些操作,如下所示:
convert input.png \
-fill black +opaque red \
\( +clone -evaluate set 0 \) \
-metric AE -compare \
-format "%[distortion]" info: