我可以使用 ImageMagick 获取不同颜色像素数量的列表吗?
Can I get a list of the number of different color pixels with ImageMagick?
假设我有以下图像:
当我使用 ImageMagick 时,命令 identify -format %k image.png
计算此图像上不同颜色的数量。我对这张图片的输出是 1031
,这意味着这张图片有 1031 种不同的颜色。然而,视觉上说我有大约 5 种不同的颜色:
black
white
grey
light green
dark green
我想找到一种获取主要颜色像素数量列表的方法。例如,假设我在最后一张图片上有 1000 像素,所以我希望是这样的:
black:10
white:50
grey:200
light green:690
dark green:50
有没有办法让ImageMagick像上次一样显示输出值?只是为了让我知道图像中主要颜色的百分比?
您可以加载图像,告诉 ImageMagick 您希望将其减少到 5 种颜色,然后像这样得到直方图:
magick 0N9iv.png -colors 5 -verbose info: | grep -A5 Histogram:
Histogram:
459: (181.83,198.952,162.503,229.414) #B6C7A3E5 srgba(71.306%,78.0204%,63.7265%,0.899662)
26749: (182.035,228.807,158.076,254.874) #B6E59EFF srgba(71.3861%,89.7283%,61.9907%,0.999506)
577: (191.945,227.688,174.459,100.095) #C0E4AE64 srgba(75.2725%,89.2894%,68.4152%,0.392528)
727: (196.666,220.169,180.959,255) #C5DCB5FF srgba(77.124%,86.3407%,70.9642%,1)
4384: (219.415,217.829,213.189,255) #DBDAD5FF srgba(86.045%,85.423%,83.6034%,1)
请注意,这意味着 ImageMagick 会自行选择颜色。如果您特别希望将图像映射到您自己的特定颜色集,请像这样制作这些颜色的调色板:
magick xc:black xc:white xc:gray xc:lightgreen xc:darkgreen +append palette.png
然后告诉 ImageMagick 将所有颜色映射到这 5 种颜色并查看输出:
magick 0N9iv.png +dither -remap palette.png -verbose info: | grep -A5 Histogram:
示例输出
Histogram:
81: (0,0,0,255) #000000FF black
22: (126,126,126,255) #7E7E7EFF gray
28270: (144,238,144,255) #90EE90FF LightGreen
4523: (255,255,255,255) #FFFFFFFF white
Colormap entries: 5
您也可以 select 像这样的直方图:
magick 0N9iv.png +dither -remap palette.png -format %c histogram:info:-
示例输出
81: (0,0,0,255) #000000FF black
22: (126,126,126,255) #7E7E7EFF gray
28270: (144,238,144,255) #90EE90FF LightGreen
4523: (255,255,255,255) #FFFFFFFF white
假设我有以下图像:
当我使用 ImageMagick 时,命令 identify -format %k image.png
计算此图像上不同颜色的数量。我对这张图片的输出是 1031
,这意味着这张图片有 1031 种不同的颜色。然而,视觉上说我有大约 5 种不同的颜色:
black
white
grey
light green
dark green
我想找到一种获取主要颜色像素数量列表的方法。例如,假设我在最后一张图片上有 1000 像素,所以我希望是这样的:
black:10
white:50
grey:200
light green:690
dark green:50
有没有办法让ImageMagick像上次一样显示输出值?只是为了让我知道图像中主要颜色的百分比?
您可以加载图像,告诉 ImageMagick 您希望将其减少到 5 种颜色,然后像这样得到直方图:
magick 0N9iv.png -colors 5 -verbose info: | grep -A5 Histogram:
Histogram:
459: (181.83,198.952,162.503,229.414) #B6C7A3E5 srgba(71.306%,78.0204%,63.7265%,0.899662)
26749: (182.035,228.807,158.076,254.874) #B6E59EFF srgba(71.3861%,89.7283%,61.9907%,0.999506)
577: (191.945,227.688,174.459,100.095) #C0E4AE64 srgba(75.2725%,89.2894%,68.4152%,0.392528)
727: (196.666,220.169,180.959,255) #C5DCB5FF srgba(77.124%,86.3407%,70.9642%,1)
4384: (219.415,217.829,213.189,255) #DBDAD5FF srgba(86.045%,85.423%,83.6034%,1)
请注意,这意味着 ImageMagick 会自行选择颜色。如果您特别希望将图像映射到您自己的特定颜色集,请像这样制作这些颜色的调色板:
magick xc:black xc:white xc:gray xc:lightgreen xc:darkgreen +append palette.png
然后告诉 ImageMagick 将所有颜色映射到这 5 种颜色并查看输出:
magick 0N9iv.png +dither -remap palette.png -verbose info: | grep -A5 Histogram:
示例输出
Histogram:
81: (0,0,0,255) #000000FF black
22: (126,126,126,255) #7E7E7EFF gray
28270: (144,238,144,255) #90EE90FF LightGreen
4523: (255,255,255,255) #FFFFFFFF white
Colormap entries: 5
您也可以 select 像这样的直方图:
magick 0N9iv.png +dither -remap palette.png -format %c histogram:info:-
示例输出
81: (0,0,0,255) #000000FF black
22: (126,126,126,255) #7E7E7EFF gray
28270: (144,238,144,255) #90EE90FF LightGreen
4523: (255,255,255,255) #FFFFFFFF white