直方图

在机器视觉术语中,直方图是指感兴趣区域 (ROI) 内的像素阵列 — 有多少像素及其各自的灰度值。In-Sight 直方图工具的函数用于对像素进行计数,以进行统计分析和特征分类。

什么是直方图

In-Sight 直方图工具通过检查 ROI 并根据其灰度值对其中的每个单独像素进行分类,然后根据像素的灰度值将它们放置在“直条”中来执行直方图分析。在 8 位灰度图像中,根据可能的灰度值(0 到 255)的数量,有 256 个直条。每个直条包含其中像素数的计数,直条是计数的索引。例如,如果图像包含 46 个像素,灰度值为 33,则该区域直方图的第 33 个直条将包含值 46。此外,直方图数组中的直条总和始终等于从中提取它的区域的面积。

下图是来自 ExtractHistogram 函数的示例直方图。直方图显示可固定窗口中像素的灰度值:

  • 图形的 X 轴表示灰度值的总数(0 到 255)。
  • 图形的 Y 轴表示给定灰度值的像素数,通过显示具有最大像素数的灰度值建立标度。
  • 绿色垂直线表示阈值。
注意直方图是一个可停靠窗口。有关详细信息,请参阅电子表格编辑器 - 图表主题。

什么时候使用直方图工具

直方图很重要,因为它们是图像中包含的像素数据的紧凑表示,去除了所有位置数据,即函数仅返回有关 ROI 中像素数量及其各自灰度(或颜色)值的信息。这意味着所有与位置无关的灰度图像统计数据都可以直接从直方图数组中计算出来。

直方图工具在检查图像是否有问题,例如检测是否存在特征、检查照明值或确定灰度值的均匀性以确定是否存在划痕、灰尘或碎屑等问题时非常有用。

如何使用直方图工具

直方图工具通常以以下方式使用:

  • 第 1 步 — 将 ExtractHistogram 函数插入电子子表格,配置参数定义将进行直方图分析的图像区域。
  • 第 2 步 — 接下来,分别使用 HistHeadHistTail 函数找到第一个和最后一个非零直条。HistHead 和 HistTail 函数的输出将用于设置其他 Histogram 函数执行其分析的范围,移除不包含像素的直条。
  • 第 3 步 — 最后,分别使用 HistMinHistMax 函数确定第一个和最后一个非零直条之间的波谷和波峰。此外,也可以使用其他直方图工具(使用定义范围的 HistHead 和 HistTail 函数的输出)执行附加分析。
注意如果为 HistMin 函数指定默认的 FirstBin 参数 0,而不是 HistHead 函数的输出,HistMin 将始终返回包含 0 像素的第一个直条,即直条 0。