有没有办法计算图片中每种颜色的像素数?

平面设计 像素 像素艺术
2022-01-07 20:30:01

我做十字绣设计,最近一直在使用 Affinity Photo/Designer。所以我可以弄清楚我需要多少每种颜色线程,我想计算每种颜色的每个像素的数量(在扁平的最终图片中)但我找不到任何方法,在 Affinity 或其他任何我有试过了,但我很乐意尝试任何不花钱的东西(或者我可能已经拥有的东西,所以不要推荐任何由 Adob​​e 制作的东西)。谁能帮我吗?

4个回答

您可以使用 GIMP 来实现,它是免费的、开源的,可在 Mac、Windows 和 Linux 上运行。

  1. 在 GIMP 中打开图像,使用File > Open

  2. 在主菜单中单击Windows > Dockable Dialogs > Histogram

  3. 选择“按颜色选择”工具Shift+ C,然后在“工具选项”中的“工具箱”下将“阈值”设置为 0

在此处输入图像描述

  1. 单击一种颜色以选择它,像素数将显示在直方图中。重复其他颜色

在此处输入图像描述

注意:如果您的图像非常小,您可能需要放大。使用+-放大/缩小。移动鼠标时按住Space可以在图像周围平移。另请注意,上例中的灰白色棋盘格是为了显示透明背景。如果您的图像具有纯色背景,您将看不到这些。

使用 Gimp 大量借鉴 Billy Kerr 的答案,这就是您在 Affinity Photo 中实现相同目标的方法:

首先使用View > Studio > Histogram菜单选项确保直方图面板处于活动状态且可见。(您可能需要使用右上角的小汉堡菜单为面板设置“高级”选项,以查看与直方图相关的统计信息。)确保选中“选框”选项,以将范围限制为选定像素.

在此处输入图像描述

然后使用Select > Select Sampled Colour...选项。将显示一个小面板:

在此处输入图像描述

单击图像以选择要采样的颜色。有一个阈值滑块来确定每个像素必须匹配到多近才能被选中。调整滑块以包含/排除您需要的像素。然后单击应用。直方图和统计数据将更新以反映选择:

在此处输入图像描述

在我的示例中,您可以看到选择了 136 个像素。如果您在直方图的右上角看到一个小的警告三角形(如我的第一个示例所示),请单击它以强制完全刷新数据。

重复其他颜色。这有点令人厌烦,因为您每次都需要使用Select > Select Sampled Colour...菜单选项。

如果您安装了命令行工具imagemagick,您可以在 *nix 或 OSX 终端中使用以下命令:

convert <filename> txt:- | cut -d " " -f 4 | uniq -c

替换<filename>为您的文件名。这将打印一个计数和十六进制颜色列表,例如:

   10 #4A413F
   14 #483E3C

这通过使用该convert工具将文件转换为“txt”格式来工作,该格式由以下行组成:

 9,0: (75,74,76)  #4B4A4C  srgb(75,74,76)

这是x,y坐标,然后是十进制RGB值,十六进制值,然后是像素的srgb值。显然,这种格式不是很有效:)。我们将其写入标准输出(txt:-意思是“将 txt 格式写入标准输出”)。

然后,我们使用内置cut命令抓取第四-f 4列( ),用空格( )分隔-d " ",这里是十六进制值(有趣的是,十进制 RGB 和十六进制值之间有两个空格,所以如果你想要十进制 RGB,使用-f 2)。

最后,我们使用内置uniq命令计算-c唯一行数,并将其打印到标准输出(终端)。

我找不到在 Photoshop 中执行此操作的方法,但有一个解决方法可以使用 Illustrator 执行此操作:

  1. 在 Illustrator* 中复制粘贴您的图像;
  2. 使用具有图像精确分辨率的对象>创建对象马赛克**将其转换为单独的正方形;
  3. 使用选择工具[V]并双击对象进入结果组;
  4. 选择魔棒工具 [Y] 并双击该工具的图标以访问其设置;
  5. 勾选“填充颜色”,将其公差设置为 1 并取消勾选其他选项;
  6. 打开窗口>文档信息并打开其选项以勾选“对象”
  7. 使用魔棒单击彩色“像素”以选择所有像素,并在“文档信息”面板的顶部显示总数量。

* 我尝试放置一个透明的 .png,Ai 拒绝对其进行拼接,因此我的建议是复制粘贴。

**这个问题概述了这种技术。