任意图表定义

介绍

在 Imatest 的任意图表模块能够分析测试图表(可能是您自己设计的图表)的图像之前,它需要确切地知道图表的设计是什么。

这需要图表特征的相关信息(图表上除背景色以外的元素,例如色块、倾斜方块、定位标记等)。所需信息包括布局参数(以便正确定位特征)以及由此生成的感兴趣区域 (ROI);在某些情况下,还需要特征的参考值信息,例如色块的真实 LAB 或 RGB 值。

图表定义以 JSON 格式的文本文件形式存在,用于描述图表的属性和功能。这些文件可以手动创建,也可以通过用户自定义的自动化流程创建(如果您愿意的话)。

根据我们目前的经验,流程如下:

图表定义实用程序可以通过检查用户 JSON 文件的正确性、显示由 JSON 定义的图表的插图以及显示来自图表真实图像的示例 ROI 来帮助完成此过程。

示例 JSON 文件

如果您已安装 Imatest 5.0 或更高版本,则您的系统中已安装了一些示例图表定义文件。这些文件位于资源目录的 chart_design子目录中,该目录与默认的 Imatest INI 文件夹位于同一位置。

在系统中查找此文件夹位置的最简单方法是在 Imatest 主窗口的“文件”下拉列表中选择“打开 INI 文件文件夹”条目。

JSON 设置

要分析图表,Imatest 需要对该图表进行定义。以下内容描述了 Imatest 分析该图表观测图像所需的必要信息。


任意图表定义如下:

  • 一个矩形场,其归一化 (x,y) 坐标为 0-1。
  • 左上角的原点(“图像样式”)。
  • 设定背景颜色。
  • 识别名称(例如,“SFR Plus 5x7”)。
  • 从下面的数据集中选取一组待分析的特征。




JSON 定义文件需要一个字段来定义图表的每个属性,例如背景颜色、编码和宽高比。该字段还定义了一个绘制在图表上的要素数组。每个图表要素都以 JSON 对象的形式列出,并包含一组用于定义其属性的必需字段。以下是正确的 JSON 结构示例:

任意图表定义

JSON 结构

通用图表属性

  • 任意图表的整个宽度和高度被解释为均匀性分析的背景区域,但不包括指定为特征或禁入区域的区域。
  • 除非明确标记为“(可选)”,否则所有字段均为必填项。功能定义中可以包含其他字段,但这些字段将被忽略。
  • 对于 JSON 数字类型,小于 1 的小数必须以零开头,例如 0.25,而不是 .25。

字段名称

JSON 值类型描述
背景编码细绳有效的编码类型字符串
bgValue数字数组有效的编码值取决于“编码”字段的输入。
姓名细绳图表名称,例如“SFRplus_5x7” 注意:图表名称必须仅由字母数字字符或下划线组成(不能有空格),因为它们将作为结果文件名的基础。
宽高比数字总宽度除以总高度,例如 1.750。*注意,此数字无单位。

特征

定义背景区域后,即可在图表上放置特征。可以使用测试图表模块生成图表特征。以下是任意图表可以分析的一组允许的特征。

共享功能属性

  • 每种要素类型都有自己的一组索引,这些索引必须从值 1 开始。
  • 假定每个特征的旋转是在放置和调整大小之后应用的。
  • 以下属性是所有任意要素类型共有的:

字段名称

JSON 值类型描述
特征类型细绳指示要素类型;例如,“倾斜方形要素”
中心包含 2 个数字的数组特征中心在归一化坐标系中的位置 [x,y]
印度数字特征的整数标识索引。*注意,每个特征族的索引均从 1 开始。
高度数字归一化 y 维度的高度范围为 0-1
宽度数字归一化 x 尺寸的宽度范围为 0-1
旋转数字(可选)旋转角度 - 顺时针

“倾斜方形特征”


字段名称JSON 值类型描述
特征类型细绳“倾斜方形特征”
编码细绳有效的编码类型字符串
价值数字数组有效的编码值取决于“编码”字段的输入。

“斜边特征”



字段名称JSON 值类型描述
特征类型细绳“斜边特征”
编码细绳有效的编码类型字符串
darkValue数字数组有效的编码值取决于“编码”字段的输入。
光值数字数组有效的编码值取决于“编码”字段的输入。
倾斜角数字倾斜角度(以度为单位,顺时针方向,从水平面开始)

“RegMarkFeature”




注意:互相关纹理图案角上的注册标记计入 RandomFieldFeature 的一部分,而非注册标记本身。它们不应单独列出,也不应计入 RegMarkFeature 的索引。

字段名称JSON 值类型描述
特征类型细绳“RegMarkFeature”

“圆形特征”




在 Imatest 5.1 中引入。

注意:圆形特征用于旧版目标的图表配准,且仅用于配准(不进行结果分析)。建议尽可能使用标记特征。圆形特征默认为黑色,位于较浅的背景上。

字段名称JSON 值类型描述
特征类型细绳“圆形特征”

“ColorPatchFeature”




注意:当可选参数“useForNoisePSD”设置为 true 时,将计算噪声功率谱密度 (PSD) 以进行纹理直接分析。通常,会使用反射率为 18% 的中性灰色块。否则,默认情况下可以将其设置为 false。

字段名称JSON 值类型描述
特征类型细绳“ColorPatchFeature”
编码细绳有效的编码类型字符串
价值数字数组有效的编码值取决于“编码”字段的输入。
useForNoisePSD布尔值(可选)用于指示是否直接进行噪声 PSD 减法的标志,例如 true、false

“随机场特征”





笔记:

  • 互相关纹理图案角点的注册标记属于 RandomFieldFeature 的一部分,而非注册标记本身。它们不应单独列出,也不应计入 RegMarkFeature 的索引。可以使用测试图表模块生成随机图案。
  • 为了执行随机直接分析,需要在图表定义中识别一个灰度色块,以便计算噪声功率谱密度 (PSD),并从随机信号 PSD 中减去该色块,这可以通过“useForNoisePSD”字段完成。
字段名称JSON 值类型描述
特征类型细绳“随机场特征”
随机类型细绳随机场设计,例如“Direct_gray”、“Direct_color”、“Cross_gray”、“Cross_color”、“DXO_direct_gray”、“IE_cross_color”

“明星特辑”





JSON 值类型描述
特征类型细绳“明星特辑”
中心标记分数数字中心定位标记直径占整个星形特征直径的比例。该值必须大于零且小于 1。

笔记:


“楔形特征”





字段名称JSON 值类型描述
特征类型细绳“楔形特征”

备注:

“禁入区域”

字段名称JSON 值类型描述
特征类型细绳“禁入区域”

注:禁入区域是指图表中可能包含其他图形特征的区域,这些特征未被本页其他图表特征定义用于分析,但系统需要识别这些区域,以避免错误地将该区域用于背景区域的均匀性分析。这包括图形、文本、边框标记等不应包含在均匀性分析中的元素。禁入区域的中心、宽度和高度的定义方式与其他任意图表特征相同。

禁入区域可以与其他已定义的图表特征重叠,而不会产生负面影响。

笔记

图表登记点

“任意图表”模块至少需要三个(最好是四个)配准点才能将图表设计与图表图像对齐。这些配准点可以来自以下任意组合:

  • RegMarkFeatures 贡献一个注册点。
  • CircleFeatures 贡献一个注册点。
  • RandomFieldFeatures 可能贡献两个或四个(或零个)注册点,具体取决于类型。

颜色编码

许多图表功能需要在其定义中输入颜色值,包括 ColorPatchFeatures、SlantedSquareFeatures 和图表背景本身。

参考颜色值可以通过一个值(通常是一个长度为 3 的数字向量)和一个字符串的组合来表示,该字符串指示一种编码方式,用于定义如何解释这些数字。下表列出了允许的编码类型及其对应的值。

编码编码字符串值描述
标准 RGB 色彩空间"srgb", "adobe_rgb"输入内容应为长度为 3 的 [r, g, b] 值数值数组,缩放为这些颜色空间的标准 8 位表示(即 [0, 255] 范围内的值,伽马编码)。
CIELAB “实验室”输入内容应为长度为 3 的数值数组,包含 [L*, a*, b*] 值(D50 白点)。L* 值必须限制在 [0, 100] 范围内。
强度值“密度”、“强度”、“8位强度”、“16位强度”强度值以归一化后的最大值 1 为基准。“intensity”输入值已归一化,范围应在 [0, 1] 之间。“intensity_8bit”和“intensity_16bit”分别以最大值 255 和 2^16-1 为基准进行归一化。“density”值是 10^(-density) 方案的指数值。所有值输入都应为单个数值。

评论

遗憾的是,JSON 文件不允许在文件中添加会被解析器忽略的注释。如果您正在编写 JSON 文件,并希望添加注释以供将来用户参考,则不能简单地使用转义字符(例如“%”或“//”),这些字符在大多数编程语言中都很常见。

但是,如果您需要对 JSON 文件进行注释,您可以向文件中的任何对象添加额外的字段,例如名为“comment”并带有字符串值的字段。Imatest 只会检查图表定义中的必填字段——任何额外的字段都会被忽略。

设计与印刷

大多数情况下,图表定义与布局和介质都密切相关。在将任意图表设计成矢量图形(通常在Inkscape或Adobe Illustrator中完成)后,需要考虑具体的承印物和印刷介质(例如,反射介质和透射介质需要两个不同的 .json 文件,因为色块的值会有所不同)。测试图表模块可用于生成一些矢量图形,这些矢量图形可用于组合自定义图表。

与所有测试图表一样,请务必考虑成像距离和最低打印分辨率。Imatest 提供各种材质和尺寸的专业打印服务。如需定制图表设计,请联系[email protected] 。如有需要,我们还提供图表定义文件创建方面的咨询服务。