Ant*_*sov 9 linux graphics image imagemagick
我有黑白图像(见下文).如何计算白色和黑色像素(例如30%黑色和70%白色,或123456黑色像素和39393白色像素)?
ps我在linux上工作,我必须使用什么?ImageMagick的?我更喜欢命令行界面程序.
小智 8
您可以使用ImageMagick的直方图函数来获取图像中每种颜色的像素数.以图像为例:
$ convert XPH7c.gif -define histogram:unique-colors=true \
> -format %c histogram:info:-
153985: ( 0, 0, 0,255) #000000 black
182138: (255,255,255,255) #FFFFFF white
Run Code Online (Sandbox Code Playgroud)
因此,您的图像有153985个黑色像素和182138个白色像素.
如果所有像素都是黑色或白色,则可以使用ImageMagick计算平均像素亮度,然后将其乘以图像中的像素数(宽x高):
convert bw.gif -format "%[nint(fx:mean*w*h)]" info:
182138
Run Code Online (Sandbox Code Playgroud)
如果想要两个外壳变量中的白色像素数量和黑色像素像素数量,可以执行以下操作:
read white black < <(convert bw.gif -format "%[fx:mean*w*h] %[fx:(1-mean)*w*h]" info:)
echo $white,$black
182138,153985
Run Code Online (Sandbox Code Playgroud)