圖表定義實用程式是 Imatest Master 中的一個獨立圖形使用者介面窗口,它可以幫助建立和驗證任意圖表模組使用的圖表定義 JSON檔案。該實用程式提供的主要服務包括:
- 指出圖表定義 JSON 建構中的錯誤,包括語意錯誤(例如,無效的值類型)和語法錯誤(例如,缺少逗號)。
- 根據所提供的定義,顯示圖表設計的示意圖,以便快速進行視覺驗證。
- 將圖表設計與圖表的實際照片進行對齊,以顯示該影像中圖表設計所產生的投資報酬率( ROI ,即興趣區域)。
此實用程式可以幫助使用者完成圖表設計流程,例如,透過說明圖表圖像中產生的 ROI 與其他圖表特徵如果距離太近可能會重疊。
它還可以輔助建立圖表定義檔(這是流程中的一個不同步驟),透過驗證 JSON 檔案是否具有正確、可解析的結構以及每個欄位的值是否合適。該實用程式能夠提供關於 JSON 定義檔中錯誤性質的回饋,幫助使用者迭代並修正定義中的技術問題。
開啟圖表定義實用程式
海圖定義實用程式在 Imatest Master 5.0 及更高版本中可用。可以直接從 Imatest 主視窗的「實用程式」面板中的「海圖定義實用程式」按鈕存取它,或透過功能表列「實用程式」下拉式功能表中的相同選項存取它。
也可以從任意圖表模組視窗的「圖表定義」窗格中開啟該實用程式。如果已在此窗格中選擇了圖表定義文件,則該文件將在實用程式視窗開啟時預先載入(無論任意圖表是否已成功讀取該文件)。
圖表定義驗證
實用工具視窗的頂部窗格用於驗證圖表定義 JSON 檔案的有效性。
有效的圖表設計圖示
如果選定的檔案是有效的圖表定義,則會向使用者顯示圖表設計的渲染圖。這可用於快速直觀地檢查其正確性。

需要注意的是,這只是根據所提供的定義繪製的圖表示意圖。它可能無法完全匹配實際列印的測試圖表上的每個特徵(該定義檔用於分析這些特徵),它只會根據定義檔繪製出已知的概念性示意圖。
顯示選項
- 使用者可以選擇在渲染圖上以紅色輪廓線顯示禁區。這些特徵(用於識別圖表上Imatest無法分析的區域,僅用於從圖表背景區域進行均勻性分析)有時會使圖表顯得雜亂,因此提供了關閉其顯示的選項。
- 要素索引可以顯示在每個要素的渲染圖上方,方便使用者將繪製的要素與對應的圖表定義檔條目關聯起來。每個要素上方顯示的數字是該要素在要素數組中的「ind」欄位值。請注意,每個要素類型的索引值都從 1 開始遞增。
無效的圖表設計訊息
如果所選文件不是有效的圖表定義文件,則可能是以下兩種原因:輸入的參數和值不符合圖表定義頁面上列出的規則,或者該文件甚至不是有效的、可解析的 JSON 結構。
Imatest 會顯示紅色訊息,描述遇到的問題,希望這則訊息夠清晰易懂,方便使用者在圖表定義檔中尋找並修正問題。如果存在多個問題,則只會報告第一個遇到的問題,直到該問題解決為止。
圖表定義問題
如果圖表定義檔(JSON 格式正確)不符合任意圖表定義規則,系統會產生提示訊息引導使用者修正錯誤。例如,如果檔案缺少必需的「name」字段,則會顯示以下資訊:

圖表定義錯誤的來源包括缺少必填欄位和欄位值類型不正確,例如,在需要數值的欄位中輸入了字串。
解析問題
導致 JSON 無法解析的錯誤可能有很多。例如,可能缺少逗號、用於標記陣列結尾的右括號或冒號。也可能存在無效字符,例如字串中使用了單引號而不是雙引號。 (還有許多其他可能的錯誤。)
遺憾的是,由於解析錯誤類型繁多,Imatest 在顯示解析錯誤訊息方面作用有限。有些問題,例如缺少逗號或陣列缺少右括號,可以得到明確的提示。
然而,有時錯誤訊息只會顯示“位置 X 處缺少值”,並顯示缺失值的上下文片段。使用者需要根據這些資訊自行查找 JSON 結構錯誤。在這種情況下, JSON Lint等線上工具可能會提供更有用的信息。
樣本區域檢測
圖表定義實用程式視窗的下部窗格可查看圖表定義檔中定義的特徵與圖表實際影像的對齊情況。

此面板對於測試特定影像是否能通過 Imatest 的自動配準功能也非常有用,無需直接將影像輸入分析模組。如果自動偵測失敗,則會彈出警告視窗。
當在此窗格中選擇圖像文件,並在頂部窗格中加載有效的圖表定義文件時,圖表將自動與圖像對齊(如果可能)。
使用者可以選擇多個圖形引導,這些引導可以使用提供的定義檔來驗證影像中偵測到的 ROI。
- 圖表特徵輪廓,以紅色高亮顯示
- 可分析的投資報酬率輪廓(源自各項特徵),以綠色高亮顯示
- 圖表背景網格的均勻性
- 圖表背景(用於均勻性網格分析)的像素位置,以藍色突出顯示
綠色方框區域所示的興趣區域 (ROI) 指示了任意圖表模組分析程序將使用的區域。例如,您可以變更不同特徵類型的填充因子INI 欄位設定(例如, [arbcharts] roiFillFactor_edge ),並查看它將如何影響從給定影像產生的 ROI。
標記為藍色的像素表示圖表背景區域,這些像素位於圖表邊界內,但不在圖表要素或禁區內。像素與這些區域(邊界、要素或禁區)之間的邊距由 INI 欄位[arbcharts] backgroundMargin決定。
均勻性網格位置會以綠色(如果該區域有足夠的有效圖表背景像素進行測量)或紅色(如果沒有足夠的有效像素)突出顯示。紅色區域的輸出結果將傳回 NaN 值。網格部分的數量由[arbcharts] nRowsGrid和nColumnsGrid控制,區域內所需的有效像素數量由[arbcharts] minValidPxGrid控制。
功能概述與投資報酬率概述
該工具還展示了圖表特徵與由該特徵產生的ROI之間的差異。例如,在真實影像中偵測到的傾斜正方形特徵與由該特徵產生的四個傾斜邊緣 ROI 截然不同。