python - (Linux) 确定图像中不同颜色的百分比

标签 python linux unix rgb

如何使用 Linux 计算图像中 RGB 值的百分比?

我做了一些研究,看来 C# 和 Python 可能是最佳选择。

最佳答案

ImageMagick 为您生成一个直方图,显示每种颜色有多少个像素,因此,假设您有一个名为 image.jpgimage.png 的图像,如下所示:

enter image description here

然后您可以在终端/命令提示符/shell 中执行此操作:

convert image.jpg -colorspace RGB -format %c histogram:info:- | sort -nr

这将为您提供每种颜色在图像中出现的频率的列表

200614: (255,255,255) #FFFFFF rgb(255,255,255)
  4758: (253,253,218) #FDFDDA rgb(253,253,218)
  4312: (250,250,229) #FAFAE5 rgb(250,250,229)
  1821: (235,237,242) #EBEDF2 rgb(235,237,242)
  1776: (212,214,226) #D4D6E2 rgb(212,214,226)
  1739: (188,190,216) #BCBED8 rgb(188,190,216)
  1372: (  8,  9, 58) #08093A rgb(8,9,58)
  1330: (  6,  6, 38) #060626 rgb(6,6,38)
  1327: (231,231,226) #E7E7E2 rgb(231,231,226)
  1265: (194,196,218) #C2C4DA rgb(194,196,218)
  1244: (  9, 10, 65) #090A41 rgb(9,10,65)
  1164: (200,202,224) #C8CAE0 rgb(200,202,224)
  1132: (  6,  7, 44) #06072C rgb(6,7,44)
  1074: ( 14, 16,115) #0E1073 rgb(14,16,115)
  1050: (  4,  5, 27) #04051B rgb(4,5,27)
  1048: ( 11, 13, 91) #0B0D5B rgb(11,13,91)

我对其进行了排序,因此最常见的颜色列在最前面 - 例如,您可以看到有 200,614 个白色像素。

要计算百分比,您需要图像中的像素总数,因此运行以下命令:

identify image.jpg
image.jpg JPEG GIF 480x640 480x640+0+0 8-bit sRGB 256c 99.7KB 0.000u 0:00.000

因此图像中有 480x640 像素,即总共 307,200 个像素。我让你自己算一下这意味着 65.3% 是白人:-)

关于python - (Linux) 确定图像中不同颜色的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943475/

相关文章:

python - 在循环中使用 find_peaks 从数据中查找峰值高度

python - 如何在命令行中使用 http.server 作为参数传递 file.py?

linux - 通过变量访问 bash 位置参数

c - 程序堆大小?

linux - 如何在 Bash 的算术表达式中使用字符串

Python 元组根据最后一个元素排序

python - 类型错误:数据类型无法理解,numpy.zeros

database - 移动 postgresql 数据存储(端口停止监听)

linux - 限制用户使用操作系统级别的 ‘conn/as sysdba’

Java Telnet 库