计算图像中具有特定颜色的像素有多少?
Count how many pixels with a specific color in an image?
我想遍历一个图像文件夹并输出到控制台 #333212 有多少像素,#332211 有多少像素等等。这在 PHP 中可行吗?我发现 package 可以 操纵 图像,但不能检测每个像素的颜色。 PHP 库中是否存在这样的工具或功能?
编辑:不必在 PHP 中,我必须安装的软件包越少越好。
您可以像这样使用 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
现在将任何东西 non-red 转换为黑色,这样就只剩下 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 对我来说看起来像 50px x 50px :-)
备注
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:
我想遍历一个图像文件夹并输出到控制台 #333212 有多少像素,#332211 有多少像素等等。这在 PHP 中可行吗?我发现 package 可以 操纵 图像,但不能检测每个像素的颜色。 PHP 库中是否存在这样的工具或功能?
编辑:不必在 PHP 中,我必须安装的软件包越少越好。
您可以像这样使用 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
现在将任何东西 non-red 转换为黑色,这样就只剩下 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 对我来说看起来像 50px x 50px :-)
备注
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: