基本介紹
在 Imatest 的任意圖表模組能夠分析測試圖表(可能是您自己設計的圖表)的圖像之前,它需要確切地知道圖表的設計是什麼。
這需要圖表特徵的相關資訊(圖表上除背景色以外的元素,例如色塊、傾斜方塊、定位標記等)。所需資訊包括佈局參數(以便正確定位特徵)以及由此產生的興趣區域 (ROI);在某些情況下,還需要特徵的參考值信息,例如色塊的真實 LAB 或 RGB 值。
圖表定義以 JSON 格式的文字檔案形式存在,用於描述圖表的屬性和功能。這些文件可以手動創建,也可以透過使用者自訂的自動化流程建立(如果您願意的話)。
根據我們目前的經驗,流程如下:
- 使用圖形編輯程式(例如Inkscape或 Adobe Illustrator)中允許的功能設計圖表。
- 測量或記錄所有特徵的位置和大小,並將其轉換為標準化單位(見下文)以及其他參考值(顏色值等)。
- 按照以下說明,手動建立一個包含描述圖表所需欄位的 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。 |
注意事項:
- Imatest 5.2 僅支援正弦星形圖案,不支援「條形星形」圖案。
- 星形的定義僅指星形的“活動區域”,即中心標記和正弦圖案,而不是任何外部“外殼”部分。
- 僅支援中心帶有定位標記的星形圖案。此定位標記的寬度佔整個星形圖案寬度的比例由 centerMarkFraction 值指定。
- 不認為其他特徵(例如灰階 OECF 區塊)屬於此特性的一部分。
- 星形圖案中心的註冊標記屬於星形特徵的一部分,而非註冊標記特徵集的一部分。它不應單獨列出,也不應計入註冊標記特徵的索引。
“楔形特徵”

| 欄位名稱 | JSON 值類型 | 描述 |
| 特徵類型 | 細繩 | “楔形特徵” |
備註:
- 楔形的自然方向如上圖所示:水平方向,寬端位於左側。在圖表設計中定義其他方向的楔形特徵時,請牢記這一點。例如,要建立一個寬端朝下的垂直楔形,則需要旋轉 270 度。
- 目前無需定義楔形中的長條圖數量或每個圖表高度的端點線寬。
“禁入區域”
| 欄位名稱 | 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或AdAdobe Illustrator中完成)後,需要考慮特定的承印物和印刷介質(例如,反射介質和透射介質需要兩個不同的 .json 文件,因為色塊的值會有所不同)。測試圖表模組可用於產生一些向量圖形,這些圖形可用於組合自訂圖表。
與所有測試圖表一樣,請務必考慮成像距離和最低列印解析度。 Imatest 提供各種材質和尺寸的專業列印服務。如需客製化圖表設計,請聯絡[email protected] 。如有需要,我們也提供圖表定義檔建立的諮詢服務。