はじめに
Imatestの任意チャートモジュールがテストチャート(場合によってはユーザー自身が設計したもの)の画像を解析するには、まずチャートの設計内容を正確に把握する必要があります。
これには、チャートの特徴(背景色以外のチャート上の要素、例えばカラーパッチ、斜めの四角形、位置合わせマークなど)に関する情報が必要です。必要な情報には、特徴を正しく配置するためのレイアウトパラメータと、それらから生成される関心領域(ROI)の両方が含まれます。場合によっては、カラーパッチの真のLAB値やRGB値など、特徴に関する参照値情報も必要となります。
グラフの定義は、グラフのプロパティと機能を記述したJSON形式のテキストファイルです。これらのファイルは、手動で作成することも、必要に応じてユーザー定義の自動プロセスで作成することもできます。
これまでの経験では、そのプロセスは以下のとおりです。
- InkscapeやAdobe Illustratorなどのグラフィック編集プログラムで使用可能な機能をまとめた表を作成してください。
- すべての特徴の位置とサイズを測定または記録し、正規化された単位(下記参照)とその他の参照値(色値など)に変換します。
- 以下に説明するように、チャートを記述する必要なフィールドを含むJSONファイルを手動で作成してください。
チャート定義ユーティリティは、ユーザーのJSONファイルの正確性をチェックし、JSONで定義されたチャートの図を表示し、チャートの実際の画像からサンプルROIを表示することで、このプロセスを支援します。
JSONファイルの例

Imatest 5.0以降のバージョンをインストール済みの場合、既にいくつかのサンプルチャート定義ファイルがシステムにインストールされています。これらのファイルは、デフォルトのImatest INIフォルダと同じ場所にインストールされているリソースディレクトリ内のchart_designサブディレクトリにあります。
システム上でこのフォルダの場所を見つける最も簡単な方法は、Imatestのメインウィンドウの「ファイル」ドロップダウンメニューから「INIファイルフォルダを開く」を選択することです。
JSONセットアップ
チャートを分析するには、Imatest はそのチャートの定義を必要とします。以下では、Imatest がそのチャートの観測画像を分析するために必要な情報について説明します。
任意チャートは以下のように定義されます。
- 正規化された(x,y)座標が0~1の範囲にある長方形のフィールド。
- 左上の原点(「画像スタイル」)。
- 定義された背景色。
- 識別名(例:「SFR Plus 5x7」)。
- 下記から分析対象となる特徴量を選択してください。

JSON定義ファイルには、背景色、エンコーディング、アスペクト比など、各チャートプロパティを定義するフィールドが必要です。このフィールドは、チャート上に描画される機能の配列も定義します。各チャート機能はJSONオブジェクトとしてリストされ、そのプロパティを定義するための必須フィールドのセットを持ちます。以下に、正しいJSON構造の例を示します。

JSON構造
一般的なチャートの特性
- 任意海図の幅と高さ全体が、均一性分析の背景領域として解釈され、特徴領域または立ち入り禁止領域として指定された領域は除外されます。
- すべての項目は、「(オプション)」と明示的にマークされていない限り必須です。機能定義には追加の項目を含めることができますが、それらは無視されます。
- JSONの数値型の場合、1未満の小数値は先頭にゼロを付ける必要があります(例:0.25、.25ではありません)。
|
フィールド名 | JSON値型 | 説明 |
| bgEncoding | 弦 | 有効なエンコードタイプの文字列 |
| bgValue | 数値の配列 | 「encoding」フィールドのエントリに応じて有効なエンコード値 |
| 名前 | 弦 | チャート名の例: "SFRplus_5x7" 注: チャート名は英数字またはアンダースコアのみで構成され、(スペースは使用できません)、結果ファイル名の基礎となります。 |
| アスペクト比 | 番号 | 全体の幅を全体の高さで割った値。例:1.750。※この数値には単位がありません。 |
特徴
背景領域が定義されたら、チャート上にフィーチャを配置できます。テストチャートモジュールを使用してチャートフィーチャを生成できます。以下は、任意チャートで分析可能なフィーチャの一覧です。
共有機能プロパティ
- 各フィーチャタイプにはそれぞれ固有のインデックスセットがあり、その値は1から始まる必要があります。
- 各フィーチャの回転は、フィーチャが配置され、サイズが決定された後に適用されるものと想定されます。
- 以下の特性は、すべての任意フィーチャタイプに共通です。
フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | フィーチャの種類を示します。例:「SlantedSquareFeature」 |
| 中心 | 2つの数値の配列 | 正規化座標における特徴の中心の位置[x,y] |
| インド | 番号 | 特徴を識別する整数インデックス。※インデックスは各特徴群ごとに1から始まります。 |
| 身長 | 番号 | 正規化されたy次元の0~1の範囲の高さ |
| 幅 | 番号 | 正規化されたx次元の幅は0~1の範囲 |
| 回転 | 番号 | (オプション)回転角度(度) - 時計回り |
「斜め正方形機能」

| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「斜め正方形機能」 |
| エンコーディング | 弦 | 有効なエンコードタイプの文字列 |
| 価値 | 数値の配列 | 「encoding」フィールドのエントリに応じて有効なエンコード値 |
「SlantedEdgeFeature」

| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「SlantedEdgeFeature」 |
| エンコーディング | 弦 | 有効なエンコードタイプの文字列 |
| ダークバリュー | 数値の配列 | 「encoding」フィールドのエントリに応じて有効なエンコード値 |
| 光の値 | 数値の配列 | 「encoding」フィールドのエントリに応じて有効なエンコード値 |
| 傾斜角 | 番号 | 傾斜角度(度)—水平線から時計回り |
「RegMarkFeature」

注:相互相関テクスチャパターンの角にあるレジストレーションマークは、レジストレーションマークではなく、RandomFieldFeatureの一部としてカウントされます。これらは個別のエントリとして扱われたり、RegMarkFeaturesのインデックスにカウントされたりしてはいけません。
| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「RegMarkFeature」 |
「サークルフィーチャー」

Imatest 5.1で導入されました。
注:CircleFeaturesは、従来のターゲットのチャート登録に使用され、登録のみに使用されます(結果の分析には使用されません)。可能な場合は、代わりにRegMarkFeaturesを使用することをお勧めします。CircleFeaturesは、明るい背景の上に黒色で表示されることを前提としています。
| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「サークルフィーチャー」 |
「カラーパッチ機能」

注:オプションの「useForNoisePSD」をtrueに設定すると、テクスチャ直接解析用のノイズパワースペクトル密度(PSD)が計算されます。通常、この目的には反射率18%のニュートラルグレーのカラーパッチが使用されます。それ以外の場合は、デフォルトでfalseのままにしておくことができます。
| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「カラーパッチ機能」 |
| エンコーディング | 弦 | 有効なエンコードタイプの文字列 |
| 価値 | 数値の配列 | 「encoding」フィールドのエントリに応じて有効なエンコード値 |
| useForNoisPSD | ブール値 | (オプション)ノイズPSD減算を直接的に使用するかどうかを示すフラグ、true、false |
「RandomFieldFeature」

注:
- 相互相関テクスチャパターンの角にあるレジストレーションマークは、レジストレーションマークではなく、RandomFieldFeatureの一部としてカウントされます。これらは個別のエントリとして扱われたり、RegMarkFeaturesのインデックスにカウントされたりしてはいけません。ランダムなパターンを生成するには、テストチャートモジュールを使用できます。
- ランダムダイレクト解析を実行するには、チャート定義内のグレースケールカラーパッチを1つ指定し、ランダム信号のパワースペクトル密度(PSD)から減算するノイズPSDを計算する必要があります。これは「useForNoisePSD」フィールドを使用して行うことができます。
| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「RandomFieldFeature」 |
| ランダムタイプ | 弦 | ランダムフィールド設計例:「Direct_gray」、「Direct_color」、「Cross_gray」、「Cross_color」、「DXO_direct_gray」、「IE_cross_color」 |
「スターフィーチャー」

| JSON値型 | 説明 | |
| 機能タイプ | 弦 | 「スターフィーチャー」 |
| センターマーク分数 | 番号 | 中央登録マークの直径は、星形フィーチャー全体の直径に対する割合として表されます。0より大きく1より小さくなければなりません。 |
注記:
- Imatest 5.2は正弦波状の星型パターンのみをサポートしており、「棒状星型」パターンはサポートしていません。
- 星の定義は、星の中心マークと正弦波状のパターンである「活動領域」のみを示しており、外側の「外皮」部分は示していません。
- 中央に登録マークが付いた星型パターンのみがサポートされます。このマークの幅は、星型全体の幅に対する比率としてcenterMarkFraction値で指定します。
- グレースケールのOECFパッチなど、その他の機能はこの機能の一部とはみなされません。
- 星型パターンの中心にある登録マークは、登録マーク機能のセットではなく、星型機能の一部としてカウントされます。個別のエントリを作成したり、登録マーク機能のインデックスにカウントしたりする必要はありません。
「ウェッジフィーチャー」

| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「ウェッジフィーチャー」 |
注記:
- ウェッジの自然な向きは、上に示したように、幅の広い端が左側にある水平方向です。チャートデザインでウェッジフィーチャを他の向きで定義する場合は、この点に注意してください。たとえば、幅の広い端が下を向いた垂直方向のウェッジの場合は、270度回転させる必要があります。
- 現時点では、ウェッジ内のバーの数や、チャートの高さあたりの端点の線幅を定義する必要はありません。
「立ち入り禁止区域」
| フィールド名 | JSON値型 | 説明 |
| 機能タイプ | 弦 | 「立ち入り禁止区域」 |
注記:除外領域とは、このページの他のチャート機能では分析対象として定義されていないものの、背景領域からの均一性分析に誤って使用されないようにシステムが認識しておく必要がある、その他のグラフィック要素が存在する可能性のあるチャートの領域です。これには、均一性分析に含めるべきではないグラフィック、テキスト、フレーミングマーカーなどが含まれます。除外領域の中心、幅、高さは、他の任意チャート機能と同様に定義されます。
立ち入り禁止区域は、他の定義された海図上の特徴と重複しても、悪影響はありません。
注記
海図登録ポイント
任意チャートモジュールでは、チャートデザインをチャート画像に正確に位置合わせするために、少なくとも3点(できれば4点)の登録ポイントが必要です。これらの登録ポイントは、以下の要素の任意の組み合わせから構成できます。
- RegMarkFeaturesは登録ポイントを1ポイント加算します。
- CircleFeaturesは登録ポイントを1ポイント加算します。
- RandomFieldFeaturesは、その種類に応じて、2つまたは4つ(あるいは0つ)の登録ポイントに貢献する場合があります。
色エンコーディング
多くのグラフ機能では、ColorPatchFeatures、SlantedSquareFeatures、およびグラフの背景自体を含め、定義時に色の値を入力する必要があります。
参照色の値は、値(通常は3桁の数値ベクトル)と、数値の解釈方法を定義するエンコーディングを示す文字列の組み合わせによって指定できます。以下の表は、使用可能なエンコーディングの種類と、それに関連付けられる値エントリの内容を示しています。
| エンコーディング | 「エンコード」文字列 | 値の説明 |
|---|---|---|
| 標準RGBカラースペース | 「srgb」、「adobe_rgb」 | 入力値は、[r、g、b] 値の 3 文字からなる数値配列で、これらの色空間の標準的な 8 ビット表現としてスケーリングされている必要があります (つまり、[0、255] の範囲の値で、ガンマエンコードされています)。 |
| CIELAB | 「ラボ」 | 入力値は、[L*、a*、b*]の値(D50白色点)からなる3桁の数値配列である必要があります。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を使用)、特定の基材と印刷媒体を考慮する必要があります(たとえば、反射性メディアと透過性メディアでは、カラーパッチの値が異なるため、2つの異なる.jsonファイルが必要になります)。テストチャートモジュールを使用すると、カスタムチャートの作成に使用できるベクターグラフィックを生成できます。
すべてのテストチャートと同様に、撮像距離と最小印刷解像度を考慮することが重要です。Imatestは、多種多様な基材とサイズに対応したプロフェッショナルな印刷サービスを提供しています。カスタムチャートデザインの作成に関する具体的なご質問は、 support@ imatest.comまでお問い合わせください。また、必要に応じてチャート定義ファイルの作成に関するコンサルティングサービスも提供しています。