Imatestにおける合否判定の実装

Imatestの合否判定操作とリファレンス

導入

Imatest は、産業用カメラのテストなど、合否判定 (P/F) が必要なアプリケーションに対して、合否判定結果を返すことができます。合否判定機能は主にImatest IT (産業用テスト、 DLLおよびEXE ) を対象としていますが、 Imatestの GUI ベース版 ( Studioを除く) でも動作し、合否判定モニターは、 Imatest ITの P/F しきい値設定の結果をプレビューするのに特に役立ちます。

合否判定の始め方

  1. 合否判定基準に使用する測定値を決定する
  2. 合否判定のしきい値設定を保存するためのテキストファイルを作成します。これは、 Imatest の設定のほとんどが保存されている imatest-v2.ini とは別のファイルです。ファイル名は「spec.ini」(または類似の名称)となる場合があります。これは、デバイスの仕様が含まれているためです。
  3. 対象となる結果(下記のP/Fリファレンスに記載)の合否判定基準値をiniファイル形式で入力してください。詳細な例を以下に示します。
  4. 特殊なMTFサマリー指標(例えば、MTF@ハーフナイキスト(0.5サイクル/ピクセル))が必要な場合は、傾斜エッジMTFモジュールの「詳細設定」ウィンドウから設定できるセカンダリ読み出しを定義することをお勧めします。セカンダリ読み出しは、エッジ/MTFプロットに表示されます。
  5. メインの ini ファイルの [api] セクションに、合格/不合格 ini ファイルの完全なパス名を入力します (マスターの場合は imatest-v2.ini、IT 実行の場合はカスタム ini ファイル)。これは、 Imatestメインウィンドウの[設定] ドロップダウン メニューを選択し、 [IT と合格/不合格設定]をクリックすることで実行できます。
  6. 合否判定データを含むモジュールを実行中に、合否モニター(下記参照)をバックグラウンドで実行することで、合否判定結果をプレビューできます。合否モニターは、分析モジュールを開始する前に起動する必要があります。

まとめ

[セクション]
パラメータ = 値
コメントはセミコロンで始まります。

[セクション]はモジュールに対応しており、サポートされているモジュールは以下に一覧表示されています。このファイルにはカメラの仕様値が含まれているため、「spec.ini」ファイルと呼ばれることがよくあります。必要な設定が一覧にない場合は、お問い合わせください。比較的簡単に追加できます。

[api]
passFail = fullPathName
。

これは、設定、ITおよび合否設定を開き、適切なボックスに完全なパス名を入力することで実行できます。

表1. 合否判定ファイル概要 リンク先は合否判定リファレンスです
セクション説明
[カラーチェック]カラーチェック用
[ねじれ]歪みについて
[複数]カラー/トーンインタラクティブとカラー/トーンオートは、カラー/グレースケールモジュールです。[colorcheck]と[stepchart]にも同様の項目があります。
[sfr] [sfr]の測定値はSFRplusのサブセットです
[sfrplus] [sfr]の測定値を含みます。
[鋭さ]ランダム/枯葉(こぼれたコイン)とスターの場合、固定分析または解像度分析のいずれか
[ステップチャート]ステップチャート用
[フラットフィールド]均一な平面における欠陥や不均一性の測定。

合格/不合格設定ファイル

合否判定設定(個々の測定値の最小値、最大値、または制限値)は、メインのini設定ファイルとは別のiniファイルに保存されます。これにより、必要に応じて改ざんから保護することができます。このファイルは、書き込みに管理者権限が必要な保護されたフォルダに保存することも可能です。

合否判定設定ファイルには、二次読み出し設定と周波数単位(該当する場合)を記述したコメント行(セミコロンで始まる行)を含めることを強くお勧めします。テスト対象デバイスの説明を含めると、さらに役立ちます。

標準的なiniファイル形式で、Imatestモジュールに対応するセクションがあり、合格/不合格ファイルの概要に記載されています。ほとんどのエントリには、次の3つの接尾辞のいずれかが付いています。

_分(最低値の場合)
_max (最大価値を得るため)
_制限(最小値と最大値の2つの値について)

異なるフォーマットの設定がいくつか存在しますが、これらは下位互換性のために残されています。

以下に例を示します。パラメータは、下記の合否判定基準表に記載されています。

[sfrplus]
MTF50P_ratio_min = 0.5
MTF50P_CP_weighted_mean_min = 0.13
回転角度の最大値 = 1
FOV_degrees_diagonal_min = 62
収束角の最大値 = 5
Secondary_readout_1_center_mean_min = .2
Secondary_readout_1_outer_mean_min = .2
Secondary_readout_2_center_mean_min = .2
Secondary_readout_2_outer_mean_min = .2

[フラットフィールド]
Dead_pixels_max = 10
Hot_pixels_max = 10
光学中心オフセット最大値 = 50
相対照度最悪コーナー最小値 = 40
Uniformity_RoverG_corners_pct_max = 10
Uniformity_BoverG_corners_pct_max = 10
シミのサイズ(ピクセル)= 20 50
傷の最大数 = 2 1

例えば、MTF50P_ratio_min = .5 は、(最小 MTF50P)/(最大 MTF50P)(選択されたすべての領域で取得)の許容最小値を 0.5 に設定します。

お客様はご自身のニーズに合わせてこのファイルを更新する必要があります。ご要望に応じて追加の寸法も追加いたします。

合否判定基準

表2. 合否判定ファイル測定設定
お客様のご要望に応じて、追加の寸法を計測することも可能です。
斜めエッジモジュール[sfrplus]、[esfriso]、[sfrreg]、[checkerboard]、および [sfr]

[sfrreg]、[checkerboard]、および[sfr]はSFRplusのサブセットです。
すべてのモジュール(主にMTF関連)で使用される設定には、特別な注釈はありません。
(+)はSFRplus、(e)はeSFR ISO、(C)はチェッカーボードを表します。
((+e)は主に色とグレースケールのパターンから派生したもので、(+eC)は主に幾何学模様です。)
関連文書:傾斜エッジ解像度解析の使用 パート2 | SFRplus INIファイルリファレンス

典型的なパラメータを持つ変数 説明
Chart_mean_pixel_level_bounds = 100 200
 チャートの中央3分の1(面積では9分の1)で測定した、チャートの平均ピクセルレベルの最小値と最大値。露出過多(または露出不足)によるエッジの飽和(鋭角化)を防ぎ、MTFの向上を図るために設定されます。
Chart_radial_pixel_shift_max = 0
(+eC)
チャート中心からの画像中心までのオフセット(ピクセル単位)。
ダイナミックレンジ_ISO_15739_濃度_2分(e) ISO 15739 ダイナミックレンジは、濃度が2.0に最も近いグレースケールパッチから導出されます(eSFR ISOのみ)。
低ピクセル飽和率の最大値
 ゼロレベルから2%以内の最大ピクセル割合
傾斜エッジからのガンマ平均値の最小値 ガンマ(コントラスト)を測定できるすべての傾斜エッジから測定した、平均ガンマの最小値(チャートのコントラスト比を入力する必要があります)。値が低い場合は、フォギングを示します。明暗領域が小さすぎる場合は計算されません。これは、エッジ角度が大きいSFRregで問題となる可能性があります。ROI幅を「通常」ではなく「より広い」または「最も広い」に設定することをお勧めします。
傾斜エッジからのガンマ_最小値_最小値 最小ガンマ(コントラスト)の最小値。すべての傾斜エッジから測定します(チャートのコントラスト比を入力する必要があります)。値が低い場合は、フォギングを示します。
ステップチャートのガンマ制限
(e) eSFR ISOグレースケールパターンからのガンマ(最小値と最大値)
高ピクセル飽和率の最大値 最大レベルの1%以内のピクセルの最大割合(通常255)
MTF50_max_max 選択されたすべてのエッジのMTF50の最大値(選択された単位)
MTF50_mean_min 選択されたすべてのエッジにおけるMTF50の平均値の最小値(選択された単位)。
MTF50分_分 選択されたすべてのエッジにおけるMTF50の最小値(選択された単位)。
MTF50P_max_max 選択されたすべてのエッジにおけるMTF50Pの最大値(選択された単位)。
MTF50P_mean_min 選択されたすべてのエッジにおけるMTF50Pの平均値の最小値(選択された単位)。
MTF50P_分_分 選択されたすべてのエッジにおけるMTF50Pの最小値(選択された単位)。
MTF50P_ratio_min = 0.5
 最小MTF50P値と最大MTF50P値(コントラストがピーク値の半分に低下する空間周波数)の比率の最小値。値が低い場合は、レンズの品質が低いか、レンズの傾きが大きい可能性を示唆します。
MTF50P_CP_weighted_mean_min = 0.13 サイクル/ピクセル単位の加重平均MTF50P。
ROIからの相対照明_最小値 傾斜エッジROIの平均ピクセルレベルからの最小相対照度(最小/最大)。
回転角度の最大値 = 1
(+eC)
画像の回転角度(度数)。上下の歪みバーを基準に測定します。合否判定には絶対値を使用します。なお、チャートが上下逆(垂直反転または180度回転)の場合、回転角度に180度が加算されるため、この測定では通常不合格となります。
FOV_degrees_diagonal_min = 62
(+eC)
対角視野(度)
収束角の最大値 = 5 (+eC)
許容される最大収束角(水平方向と垂直方向の両方を測定)。台形歪みの指標。
Secondary_readout_1_all_min_min
 画像内の任意の場所におけるセカンダリ読み出し1の平均値の最小許容値。セカンダリ読み出しについては、こちらで説明しています。セカンダリ読み出しのiniファイル設定は、 Imatest INIファイルリファレンスに記載されています。
Secondary_readout_1_center_mean_min = .2 中心領域における二次読み出し1の平均値の最小許容値(中心から角までの距離の30%未満)。
Secondary_readout_1_outer_mean_min = .2 外側領域(中心から角までの距離の30%以上。中間領域(30~75%)と角領域(75%超)を含む)における二次読み出し1の平均値の最小許容値。( eSFR ISOの場合、中間領域は30~68%、角領域は68%超です。)
Secondary_readout_2_all_min_min
 画像内の任意の場所における二次読み出し2の平均値の最小許容値。
Secondary_readout_2_center_mean_min = .2 中心領域における二次読み出し2の平均値の最小許容値(中心から角までの距離の30%まで)。
Secondary_readout_2_outer_mean_min = .2 外側領域(中心から角までの距離の30%以上。中間領域と角領域を含む)における二次読み出し2の平均値の最小許容値
Secondary_readout_1_outer_min_min = .2 外側領域(中心から角までの距離の30%以上)における二次読み出し1の最小許容値
Secondary_readout_2_outer_min_min = .2 外側領域における二次読み出し2の最小値の許容最小値
Secondary_readout_1_partway_mean_min = .2 中間領域(中心から角までの距離の30~75%)における二次読み出し1の平均値の最小許容値
Secondary_readout_2_partway_mean_min = .2 中間領域における二次読み出し2の平均値の最小許容値
SMIA_TV_歪み制限(+eC) SMIAテレビ歪みの許容最小値と最大値。
snr_bw_min (e) SNR帯域幅の最小値: www.imatest.com/docs/noise/#snr_bwを参照してください。この測定値はシーン参照型であり、つまり、画像のコントラストが変化してもほとんど変化しません。
Y_SNR_dB_mean_except_ends_min
(e)グレースケールステップチャートから得られるSNR(dB)の最小値。ただし、最も明るい部分と最も暗い部分の2つは除外する。カラー画像の場合はY(輝度)チャンネル。画像のコントラストに比例する。
Horizontal_bars_OK_min = 1 (+) (+)上下のバーが正しく検出されているか(大きな隙間なく表示されているか)をテストします。
All_Edge_IDs_detected = 1 (+) エッジIDファイルで指定されているすべてのEdge_IDが検出されていることを確認します。
ミラーチャート = 1 (+e)
入力された画像が左右反転または上下反転しているかどうかをテストします(反転画像の場合は失敗します)。チャートには中央の正方形の下にグレースケールのステップチャートが含まれており、メインのiniファイルの[sfrplus]セクションでstepchart = 1になっている場合にテストします。
Bayer_decode = 1 (+e)
メインのiniファイルの[sfrplus]セクションでcolorchart = 1が設定されており、チャートに中央の正方形の上にカラーパッチが含まれている場合、 Bayerパターンのデコードが正しいかどうかをテストします(間違っている場合は失敗します)。
検出された色の期待値 = 1 (+e)
メインのiniファイルの[sfrplus]セクションでcolorchart = 1が設定されている場合、チャートの中心より上にカラーパターンが表示されるはずです。カラーパターンが表示されない場合、このテストは失敗します。これは、チャートの位置が適切でないか、単にテスト対象のチャートにカラーパターンが存在しないことを示しています。
DeltaE_00_mean_max = 10 (+e)
ΔE 2000 色精度。最適な結果を得るには、マルチチャートから生成されたカラーリファレンスファイルを使用してください。
Stepchart_expected_detected = 1 (+e)
メインのiniファイルの[sfrplus]セクションでstepchart = 1に設定されている場合、チャートの中心の下にグレースケールのステップチャートが表示されるはずです。ステップチャートが存在しない場合、このテストは失敗します。これは、チャートの配置が間違っているか、テストチャートにグレースケールのステップチャートが存在しないことを示しています(ほとんどの標準チャートには含まれているため、これはまれなケースです。ただし、ガラスにクロムメッキされたチャートは例外です)。
逆さま = 1
(+e)
設定されている場合、上下逆さまの状態が検出されたら画像を失敗とします。
passfail_ini_file_date = (手動で入力された日付) 合格/不合格の日付を示すオプションのインジケーター。出力には、ファイルの最終更新日時とサイズ(バイト単位)を含む「passfail_ini_time_size」という別の結果も表示されます。
[シャープネス]ランダムモジュールとスターモジュール用(固定またはリチャート)
関連文書:ランダム/枯葉(こぼれたコイン) |星図
MTF50_min = 0.25
 
過剰シャープニング率制限 -20 25
 
二次読み出し1分 
二次読み出し2分 
二次読み出し1の制限 
二次読み出し2の制限 
過剰シャープニング率の最大値 = 25
 最大オーバーシャープニング(サポートされているモジュールではオーバーシュートは定義されていません。)
最小鋭度 = 80
 CPIQ 鋭度最小値

均一な光場の解析のための[フラットフィールド]
関連ドキュメント: Flatfield の使用方法| Flatfield Blemish Detect の使用方法| Flatfield INI ファイルリファレンス

Dead_pixels_max = 10 許容されるデッドピクセルの最大数。デッドピクセル検出のしきい値(パーセントまたは絶対値)は、iniファイルの[flatfield]セクションで設定します。
Dead_pixel_clusters_max = 0
 許容されるデッドピクセルクラスタの最大数。クラスタは、2つ以上の隣接するデッドピクセルとして定義されます。標準のiniファイルにあるcalcluster設定を上書きします。calcluster(2)を入力すると、値は1に設定されます。
欠陥ピクセルの最大数 = 10
 ホットピクセルとデッドピクセルの最大合計
Hot_pixels_max = 10 許容されるホットピクセルの最大数。ホットピクセル検出のしきい値(パーセントまたは絶対値)は、iniファイルの[flatfield]セクションで設定されます。
Hot_pixel_clusters_max = 0
 許容されるホットピクセルクラスタの最大数。クラスタは、2つ以上の隣接するホットピクセルとして定義されます。標準のiniファイルにあるcalcluster設定を上書きします。calcluster(1)を入力すると、値は1に設定されます。
光学中心オフセット最大値 = 50 光学中心オフセットX最大値 = 50
光学中心オフセットY_max = 50
 画像中心からの光学中心(最高輝度の位置)の最大オフセット(ピクセル単位)。ノイズの影響を最小限に抑えるため、X軸とY軸の光学中心は、平滑化された値が最大値の95%を下回る点間の曲線の重心を用いて定義されます。(実際の最大値は非常に広いため、ノイズの影響を受けやすい。)
相対照度最悪コーナー最小値 = 40 最小コーナー領域の輝度を、平滑化画像の最大輝度で割った値。
Uniformity_RoverG_corners_pct_max = 10 最大R/Gコーナー不均一性 = 100%( RG max - RG min )/ RG max 、ここでRG max = 4つのコーナーにおける最大R/G比、 RG min = 4つのコーナーにおける最小R/G比。
Uniformity_BoverG_corners_pct_max = 10 最大B/Gコーナー不均一性 = 100%( BG max - BG min )/ BG max 、ここで、 BG max = 4つのコーナーにおける最大B/G比、 BG min = 4つのコーナーにおける最小B/G比。
R_div_G_ctr_corner_diff_pct_max [v4.3+ Bayer RAW] 最大R/G 中央およびコーナーの差 % = 100%( RG max - RG min )/ RG max 、ここでRG max = 中央およびコーナーの最大 R/G 比、 RG min = 中央およびコーナーの最小 R/G 比。
R_div_G_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 最大R/G 中央およびコーナーの差 % = 100%( RG max - RG mean )/ RG max 、ここでRG max = 中央およびコーナーの最大 R/G 比、 RG mean = コーナーの平均 R/G 比。
B_div_G_ctr_corner_diff_pct_max [v4.3+ Bayer RAW] 最大 B /G 中央およびコーナーの差 % = 100%(B G max - B G min )/B RG max 、ここで B G max = 中央およびコーナーの最大 B/G 比、B G min = 中央およびコーナーの最小 B/G 比。
B_div_G_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 最大 B /G 中央およびコーナーの差 % = 100%(B G max - B G mean )/B G max 、ここで B G max = 中央およびコーナーの最大 B/G 比、B G mean = コーナーの平均 B/G 比。
R_div_B_ctr_corner_diff_pct_max [v4.3+ Bayer RAW] 最大 R/B 中央およびコーナーの差 % = 100%( RB max - RB min )/ RB max 、ここでRB max = 中央およびコーナーの最大 R/B 比、 RB min = 中央およびコーナーの最小 R/B 比。
R_div_B_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 最大 R/B 中央およびコーナーの差 % = 100%( RB max - RB mean )/ RB max 、ここでRB max = 中央およびコーナーの最大 R/B 比、 RB mean = コーナーの平均 R/B 比。
センターGb_Gr_変動率最大値 [v4.3+ Bayer RAW] 最大センターパッチ Gb - Gr 差 % = 100% Abs(Gb平均-Gr平均)/Average(Gb平均, Gr平均)
Corner_Gb_Gr_variation_pct_max [v4.3+ Bayer RAW] コーナーパッチの最大 Gb - Gr 差 % = 100% Abs(Gb平均-Gr平均)/Average(Gb平均, Gr平均)
Center_R_div_G_unnorml_limits中心R/G比の許容値の範囲[最小値、最大値]。値は正規化されていません。
Center_B_div_G_unnorml_limits中心B/G比の許容値の範囲[最小値、最大値]。値は正規化されていません。
Center_R_mean_max [v4.3+ Bayer RAW] 中央パッチ 赤色チャンネル平均ピクセルレベル最大値
Center_R_mean_min [v4.3+ Bayer RAW] 中央パッチ 赤色チャンネル平均ピクセルレベル最小値
センター_GB_平均_最大 [v4.3+ Bayer RAW] センターパッチ グリーン(ブルー)チャンネル平均ピクセルレベル最大値
センター_Gb_平均_最小値 [v4.3+ Bayer RAW] 中央パッチ グリーン(ブルー)チャンネル平均ピクセルレベル最小値
Center_Gr_mean_max [v4.3+ Bayer RAW] 中央パッチ 緑(赤)チャンネル平均ピクセルレベル最大値
Center_Gr_mean_min [v4.3+ Bayer RAW] 中央パッチ 緑(赤)チャンネル平均ピクセルレベル最小値
Center_B_mean_max [v4.3+ Bayer RAW] 中央パッチ 青チャンネル平均ピクセルレベル最大値
Center_B_mean_min [v4.3+ Bayer RAW] 中央パッチ 青チャンネル平均ピクセルレベル最大値
センターR_std_max [v4.3+ Bayer RAW] 中央パッチ 赤色チャンネル標準偏差最大値
センター_Gb_std_max [v4.3+ Bayer RAW] センターパッチ グリーン(ブルー)チャンネル 標準偏差最大値
センターグループ標準最大 [v4.3+ Bayer RAW] センターパッチ グリーン(レッド)チャンネル標準偏差最大値
センターB_std_max [v4.3+ Bayer RAW] 中央パッチ 赤色チャンネル標準偏差最大値
R_ctr_corner_diff_pct_max [v4.3+ Bayer RAW] 最大赤色中心とコーナーの差 % = 100%( R max - R min )/ R max 、ここでR max = 中心の平均赤色、 R min = コーナーの最小平均 R 値。
R_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 最大赤中心と平均コーナー差 % = 100%( R max - R mean )/ R max 、ここでR max = 中心の平均赤、 R mean = コーナーの平均 R 値。
Gr_ctr_corner_diff_pct_max [v4.3+ Bayer RAW] 最大グリーン(レッド) 中央とコーナーの差 % = 100%(G r max - Gr min )/ Gr max 、ここでGr max = 中央の平均グリーン(レッド)、Gr min = コーナーの最小平均 Gr 値。
Gr_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 最大グリーン(レッド)中央と平均コーナー差 % = 100%(Gr max - Gr mean )/Gr max 、ここで Gr max = 中央の平均グリーン(レッド)、Gr mean = コーナーの平均 Gr 値。
Gb_ctr_corner_diff_pct_max [v4.3+ Bayer RAW] 最大グリーン(ブルー)中央とコーナーの差 % = 100%(G r max - Gb min )/ Gb max 、ここでGb max = 中央の平均グリーン(ブルー)、Gb min = コーナーの最小平均 Gb 値。
Gb_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 最大グリーン(ブルー)中央と平均コーナーの差 % = 100%(Gb max - Gb mean )/Gb max 、ここで Gb max = 中央の平均グリーン(ブルー)、Gb mean = コーナーの平均 Gb 値。
B_ctr_corner_diff_pct_max [v4.3+ Bayer RAW] 最大青色中心とコーナーの差 % = 100%(B max - B min )/B max 、ここで B max = 中心の平均青色、B min = コーナーの最小平均 B 値。
B_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 最大青色中心と平均コーナー差 % = 100%(B max - B mean )/ B max 、ここで B max = 中心の平均青色、B mean = コーナーの平均 B 値。
シミのサイズ(ピクセル)= 10 80(シミのみ)
 Blemish_maximum_count のピクセル単位のシミのサイズは以下のとおりです。
シミの最大数 = 3 1 (シミのみ)
 Blemish_size_pixelsで指定された最大サイズを持つピクセルにおける、最大欠陥数
[colorcheck]カラーチェックに使用します。これらのエントリは、カラー/トーンインタラクティブおよびカラー/トーンオートで使用される[multi]と同じです。
[colorcheck] に含まれていない [multi] の追加項目は、入手可能になり次第、以下に追加されます。
関連文書: Colorcheckの使用方法
gamma_limits = .4 .7 ガンマの最小値と最大値。
exposure_error_f_stop_limits = -1 1 露出誤差の限界値(F値)
Delta_E_2000_mean_max max(Delta-E 2000 平均値)
Delta-C_2000_mean_max max(Delta-C 2000 平均値)
Delta-E_2000_max_max max(デルタE 2000 max)
Delta-C_2000_max_max max(Delta-C 2000 max)
Delta-E_mean_max max(Delta-E平均)
Delta-C_mean_max max(Delta-C 平均)
Delta-E_max_max max(Delta-E max)
Delta-C_max_max max(Delta-C max)
[歪み]歪み用
SMIA_TV_Distortion_limits = -2 3 SMIAテレビ歪み制限
[multi]カラー/トーンインタラクティブおよびカラー/トーンオートのカラー/グレースケールモジュールで使用します。上記で説明したカラーチェックの設定はすべて利用可能です。追加設定は、プログラムされ次第、以下に追記します。
P/Fパラメータを追加で設定する必要がある場合は、Color/Tone Interactive/AutoのJSON出力で利用可能な変数を確認することをお勧めします。
関連資料:
カラー/トーンインタラクティブの使用方法|カラー/トーンオートの使用方法
gamma_limits = .4 .7
 ガンマ値の最小値と最大値。(0.4と0.7はカラースペース画像の場合です。)
ステップチャートの場合は[stepchart]を使用します。[multi] と同様のエントリもあります。
gamma_limits = .4 .7 ガンマの最小値と最大値。

メインのiniファイルで合格/不合格ファイルを参照する

メインのini設定ファイルには、合格/不合格設定ファイルの場所を含む[api]セクションが含まれている必要があります。

[api]
nomsg = 1
savedel = 1
sfrrefine = 1
passFail = C:\Imatest\Data\passfailtest_1.txt

UUT(被試験ユニット)情報をImatest IT部門に送信する(オプション)

各テストには、UUT(テスト対象ユニット)を識別するための部品番号とシリアル番号(いずれも文字列)が含まれる場合があります。

部品番号とシリアル番号は、画像ファイルと画像サイズを定義するデータとともにImatest ITに渡されます。これは、以下の例に示すように、 Matlabで記述されたJSONオブジェクト内に含まれています。C、C++などのサンプルは、 Imatest ITのビルドに付属します。

% まず、画像をバイナリファイルとして読み込みます。
rdfname = 'C:\Imatest\projects\sfrplus\SFRplus_5.rw3';
inifile = 'C:\Imatest\projects\sfrplus\SFRplus_5_rw3.ini';
endian_str = 'ieee-le';精度 = 'uint16=>uint16';
jstr.width = 1280; jstr.height = 720; jstr.ncolors = 1; % 生ファイルには使用されません。
jstr.extension = 'rw3';
jstr.fileroot = rdfname;
jstr.serial_number = '46-062';

jstr.part_number = 'X-1 ロケット飛行機';
jsonObj = savejson('',jstr,[]); % 構造を JSON オブジェクトに変換します。
fd = fopen(rdfname, 'r', endian_str) ; % 画像ファイルを読み取り用に開きます。
[ im_orig count ] = fread(fd, inf, precision) ; % inf はビットをスキップすることを可能にします。
disp(char({'';'';'直接読み込み: 単一イメージ'}));
output = sfrplus_shell('', 'C:\Imatest\projects\sfrplus', inputKeys, opMode, ...
'C:\Imatest\projects\sfrplus\SFRplus_5_rw3.ini',im_orig,jsonObj);
% 'C:\Imatest\matlab\trunk\API\it_samples\sfr\sfr_gf1_1file.ini',im_orig,jsonObj);
disp(出力)

注: jstr.extension = 'rw3' はファイル拡張子を指し、そのデコードパラメータはGeneralized Read Raw 設定で設定されます。

jstr.width = 1280; jstr.height = 720; jstr.ncolors = 1; は、 Generalized Read Rawでデコードされる生ファイルには使用されません。これらは、標準フォーマットで処理された画像をデコードするために使用されます。

メインのiniファイルで設定された値を上書きします。

実行時にメインのiniファイル(上記の例ではC:\Imatest\projects\sfrplus\SFRplus_5_rw3.ini)の設定を上書きしたい場合があります。たとえば、複数の異なる画像を順番に解析する場合などです。これは、呼び出しシーケンス内のステートメントで行うことができます。以下にバーガンディで示されている3つの変数が現在サポートされています。(crop_borders、lens_to_chart_diatance_cmなどのフィールド)は、示されているとおりに正確に入力する必要があります(プログラムにハードコードされています)。ご要望に応じて、さらに多くの変数を追加できます。

...
jstr.serial_number = '46-062';
jstr.part_number = 'X-1 ロケット飛行機';
jstr.crop_borders = [5 5 5 5]; % 作物の境界線 ( [LRTB] )
jstr.lens_to_chart_distance_cm = 33.3;
jstr.chart_height_cm = 39.99;
jsonObj = savejson('',jstr,[]); % 構造を JSON オブジェクトに変換します。

出力

出力形式は順次拡張されており、最終的にはJSONオブジェクトとXMLオブジェクトの両方が含まれる予定です。

JSON出力

合格/不合格の結果は JSON オブジェクトの末尾に追加されます。傷については、

{
「blemishResults」:{
"dateRun": "2012年4月10日 17:59:58",
...
"N_blemish_count": [1],
"blemishSizePxls": [1651]、
"blemishCenter_X": [781.5]、
"blemishCenter_Y": [644.2]、
「合格失敗」:{
"started_at": "2012-04-10 17:59:58",
"part_number": "X-1 ロケットプレーン",
"serial_number": "46-062",
"終了日時": "2012-04-10 18:00:00",
「ランタイム」: [1.848969517]、
「Dead_pixels_max」:[10]、
「デッドピクセル」:[0]、
「Dead_pixels_pf」:[1]、
「デッドピクセルステータス」: 「合格」
「Hot_pixels_max」:[10]、
「ホットピクセル」:[0]、
「Hot_pixels_pf」:[1]、
「Hot_pixels_status」: 「合格」
「Optical_center_offset_max」:[50]、
「光学中心オフセット」:[-30,14]、
「Optical_center_offset_pf」:[1]、
「光学中心オフセットステータス」:「合格」
}
}
}

解釈: デッドピクセルの最大許容数は 10 です (..._max で指定)。0 個が検出されました。「..._pf」: [1] は、画像が基準を満たしたことを意味します。「..._status」: 「合格」も、画像が合格したことを意味します。これらの 3 行は、合格/不合格モニターで読みやすくするために解析され、不合格の結果が最初に表示されます。例:

合格失敗モニターの切り抜き例
主要な欠陥検出結果が合否モニターに表示されます

SFRplusの場合、

{
"sfrplusResults": {
"dateRun": "2012年4月10日 20:22:27",
...
"k1_3rd_order_dist_coeff": [0.0117]、
"h1_5th_order_dist_coeff": [-0.036]、
"h2_5th_order_dist_coeff": [0.0443]、
「合格失敗」:{
"started_at": "2012-04-15 16:05:10",
"part_number": "X-1 ロケットプレーン",
"serial_number": "46-062",
"終了日時": "2012-04-15 16:05:15",
「ランタイム」: [4.52085684]、
"all_tests_passed": [0],
"MTF50P_ratio_min": [0.5],
「MTF50P_ratio」:[0.7628270592]、
"MTF50P_ratio_passed": [1]、
"MTF50P_CP_weighted_mean_min": [0.13],
「MTF50P_CP_weighted_mean」:[0.132948091]、
「MTF50P_CP_weighted_mean_passed」: [1]、
「Rotation_degrees_max」:[1]、
"Horizontal_bars_OK_min": [1],
「水平バーOK」:[1]、
「Horizontal_bars_OK_passed」:[1]、
「All_Edge_IDs_detected」: [1]、
「すべてのエッジIDが検出されました」:[1]、
「All_Edge_IDs_detected_passed」:[1]、
「ミラーチャート」:[1]、
"Mirrored_chart_OK": [1]、
「Mirrored_chart_passed」: [1]、
「Bayer_decode」:[1]、
「Bayer_decode_OK」:[1]、
「Bayer_decode_passed」: [1]、
"Color_expected_detected": [1],
"Color_expected_OK": [0]、
"Color_expected_passed": [0],
「Stepchart_expected_detected」:[1]、
「Stepchart_expected_OK」:[1]、
「Stepchart_expected_passed」:[1]、
「回転角度」:[-0.6021933244]、
「Rotation_degrees_passed」:[1]、
"FOV_degrees_diagonal_min": [62],
"FOV_degrees_diagonal": [103.8954245],
"FOV_passed": [1]、
「収束角の最大値」:[5]、
"Convergence_angle_degrees_horz": [-1.816256865],
「収束角度_垂直」:[-4.310448164]、
「収束角通過」:[1]、
"Secondary_readout_1_center_mean_min": [0.2],
"Secondary_readout_1_center_name": "MTF @ .25 LP/mm",
"Secondary_readout_1_center_mean": [0.1525933797],
"Secondary_readout_1_center_mean_passed": [0],
"Secondary_readout_1_outer_mean_min": [0.2],
"Secondary_readout_1_outer_name": "MTF @ .25 LP/mm",
"Secondary_readout_1_outer_mean": [0.1827151453],
"Secondary_readout_1_outer_mean_passed": [0],
"Secondary_readout_2_center_mean_min": [0.2],
"Secondary_readout_2_center_name": "MTF @ .125 LP/mm",
"Secondary_readout_2_center_mean": [0.5577878056],
「Secondary_readout_2_center_mean_passed」: [1]、
"Secondary_readout_2_outer_mean_min": [0.2],
"Secondary_readout_2_outer_name": "MTF @ .125 LP/mm",
"Secondary_readout_2_outer_mean": [0.5271610521],
「Secondary_readout_2_outer_mean_passed」:[1]
}
}
}