在 Imatest 中實現通過/失敗測試

Imatest 通過/失敗操作和參考

介紹

Imatest可以為需要傳回通過/失敗 (P/F) 結果的應用(例如工業相機測試)提供此類結果。雖然通過/失敗結果主要面向Imatest IT (工業測試; DLL和EXE檔案),但它也適用於基於 GUI 的Imatest版本( Studio除外)。在這些版本中,通過/失敗監視器對於預覽Imatest IT的 P/F 閾值設定結果特別有用。

開始使用及格/不及格製

  1. 確定用於合格/不合格標準的測量方法
  2. 建立一個文字檔案來儲存通過/失敗閾值設定。這是一個獨立於 imatest-v2.ini 的文件,imatest-v2.ini 儲存了大部分Imatest設定。它有時被命名為“spec.ini”(或類似名稱;之所以這樣命名,是因為它包含設備規格)。
  3. 使用ini 檔案格式輸入您感興趣的結果的通過/失敗閾值設定(詳見下方的 P/F 參考)。下面給出一個詳細範例。
  4. 如果需要特殊的 MTF 匯總指標(例如,半奈奎斯特頻率 (0.5 週期/像素) 的 MTF),我們建議您定義一個輔助讀數,該讀數可在傾斜邊緣 MTF 模組的「更多設定」視窗中進行設定。輔助讀數會顯示在「邊緣/MTF」圖中。
  5. 在主 ini 檔案(Master 版本使用 imatest-v2.ini;IT 版本使用自訂 ini 檔案)的 [api] 部分中輸入 pass/fail ini 檔案的完整路徑名。這可以透過在Imatest主視窗中選擇「設定」 下拉式選單, 然後點擊「IT 和 Pass/Fail 設定」來完成。
  6. 您可以在執行包含通過/失敗資料的模組時,在背景執行通過/失敗監視器(如下所示),以預覽通過/失敗結果。通過/失敗監視器應先於分析模組啟動。

概括

[部分]
參數 = 值
評論以分號開頭。

[section] 對應於模組,支援的模組清單如下。由於此檔案包含相機規格的值,因此通常稱為“spec.ini”檔案。如果您需要的設定未列出,請聯絡我們:新增設定相對簡單。

[api]
passFail = fullPathName
。

這可以透過開啟「設定」、「IT 和通過/失敗設定」 ,然後在對應的方塊中輸入完整路徑名稱來完成。

表 1. 透過/不透過文件摘要連結指向通過/不透過參考
部分描述
[顏色檢查] Colorcheck
[失真]失真
[多]顏色/色調互動式和顏色/色調自動彩色/灰階模組。 [colorcheck] 和 [stepchart] 中也有類似的條目。
[sfr] [sfr] 測量是 SFRplus 的子集。
[sfrplus]包括 [sfr] 測量。
[清晰度]適用於隨機/枯葉(散落的硬幣)和星形;無論是固定分析還是分辨率分析
[步驟圖]步進圖
[平地]均勻平面瑕疵和不均勻性測量。

通過/失敗設定文件

通過/失敗設定——即各項測量的最小值、最大值或限值——儲存在一個獨立於主 ini 設定檔的 ini 檔案中,以便在必要時防止篡改。該檔案可以放在一個需要管理員權限才能寫入的受保護資料夾中。

我們強烈建議在通過/失敗設定檔中包含註解行(以分號 ; 開頭),其中包含輔助讀數設定和頻率單位(如果適用)。如果註解行中包含待測設備的描述,則更有幫助。

它採用標準的ini 檔案格式,其中包含與 Imatest 模組對應的部分,這些模組列在通過/失敗文件摘要中。大多數條目都有以下三個後綴之一:

_min (最小值)
_最大限度(為了獲得最大值)
_limits (取兩個值:最小值和最大值)

有些設定採用不同的格式-為了向後相容而保留。

以下是一個範例。參數列於下方的「通過/失敗參考」 。

[sfrplus]
MTF50P_ratio_min = .5
MTF50P_CP_weighted_mean_min = .13
Rotation_degrees_max = 1
FOV_degrees_diagonal_min = 62
Convergence_angle_max = 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
Optical_center_offset_max = 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
 圖表的最小和最大平均像素值,測量位置在圖表中間三分之一處(面積的九分之一)。設定此參數是為了避免因過度曝光(或曝光不足)而導致邊緣飽和(銳角),從而改善MTF曲線。
Chart_radial_pixel_shift_max = 0
(+eC)
圖表中心(相對於影像中心)的偏移量(以像素為單位)。
Dynamic_Range_ISO_15739_at_density_2_min (e) ISO 15739 動態範圍源自於密度最接近 2.0 的灰階色塊(僅限 eSFR ISO)
低像素飽和度最大值
 零級像素佔2%以內的最大比例
Gamma_from_slanted_edges_mean_min 平均伽瑪值(對比)的最小值,測量自所有可測量伽瑪值的傾斜邊緣(必須輸入圖表對比比率)。低值表示有霧化現象。如果明暗區域過小,則不進行計算。這對於具有較大邊緣角度的 SFRreg 來說可能是一個問題。我們建議使用「更寬」或「最寬」的 ROI 寬度(而不是「正常」)。
Gamma_from_slanted_edges_min_min 最小伽瑪值(對比),從所有傾斜邊緣測量(必須輸入圖表對比比率)。低值表示出現霧化現象。
Gamma_from_stepchart_limits
(e)來自 eSFR ISO 灰階模式的 Gamma(最小值和最大值限制)
高像素飽和度比例最大值 最大像素數佔比(通常為 255)在最大值的 1% 以內
MTF50_max_max 所有選定邊緣的 MTF50 最大值(以選定單位表示)
MTF50_mean_min 從所有選定的邊緣中,MTF50(以選定的單位)的平均值的最小值。
MTF50_min_min 所有選定邊緣的 MTF50 最小值(以選定單位表示)。
MTF50P_max_max 所有選定邊緣的 MTF50P 最大值(以選定單位表示)。
MTF50P_mean_min 從所有選定的邊緣中,MTF50P(以選定的單位)的平均值的最小值。
MTF50P_min_min 所有選定邊緣的 MTF50P 最小值(以選定單位表示)。
MTF50P_ratio_min = .5
 最小MTF50P與最大MTF50P之比(對比降至峰值一半時的空間頻率)。低值表示鏡頭品質差或可能有嚴重的鏡頭傾斜。
MTF50P_CP_weighted_mean_min = .13 加權平均 MTF50P(單位:Cycles/Pixel)。
來自 ROI 的相對光照強度 傾斜邊緣 ROI 的平均像素水準的最小相對照度(最小值/最大值)。
Rotation_degrees_max = 1
(+eC)
影像旋轉角度以度為單位,從頂部和底部畸變條測量。使用絕對值來判定是否合格。請注意,如果圖表上下顛倒(垂直鏡像或旋轉 180 度),則旋轉角度將加上 180 度,這通常會導致此項測量不合格。
FOV_degrees_diagonal_min = 62
(+eC)
對角視場角(度)
Convergence_angle_max = 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 外部區域二級讀出1的最小允許值(≥中心到角距離的30%)
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)訊號雜訊比頻寬的最小值: 請參閱www.imatest.com/docs/noise/#snr_bw。此測量是場景參考的,即,當影像對比度變化時,它變化很小。
Y_SNR_dB_mean_except_ends_min
(e)從灰階圖(排除最亮和最暗的兩個區域)中取得最小訊號雜訊比 (SNR) 值(dB)。 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,則測試拜耳圖案解碼是否正確。
Color_expected_detected = 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,其中包含檔案的修改時間和大小(以位元組為單位)。
[銳利度]適用於 Random 和 Star 模組(固定或 Rescharts)
相關文件:隨機/枯葉(散落的硬幣) |星圖
MTF50_min = .25
 
過度銳利化百分比限制 -20 25
 
二級讀出_1分鐘 
二級讀出 2 分鐘 
Secondary_readout_1_limits 
Secondary_readout_2_limits 
過度銳利化百分比最大值 = 25
 最大過銳化(支援的模組未定義過衝。)
最小銳利度 = 80
 CPIQ 最低準確度

[平場] 用於分析均勻光場
相關文件:使用 Flatfield |使用 Flatfield 瑕疵檢測| Flatfield INI 文件參考

Dead_pixels_max = 10 允許的最大死像素數。死像素偵測閾值(百分比或絕對值)在ini檔案的[flatfield]部分設定。
Dead_pixel_clusters_max = 0
 允許的最大死像素簇數量,其中簇定義為兩個或多個相鄰的死像素。此設定會覆寫標準 ini 檔案中的 calcluster 設定:如果輸入此值,則 calcluster(2) 的值將設為 1。
缺陷像素最大計數 = 10
 熱像素與死像素總和的最大值
Hot_pixels_max = 10 允許的最大熱像素數。熱像素偵測閾值(百分比或絕對值)在 ini 檔案的[flatfield]部分中設定。
Hot_pixel_clusters_max = 0
 允許的最大熱像素簇數量,其中簇定義為兩個或多個相鄰的熱像素。此設定會覆寫標準 ini 檔案中的 calcluster 設定:如果輸入此值,則 calcluster(1) 的值將設為 1。
Optical_center_offset_max = 50 Optical_center_offset_X_max = 50
Optical_center_offset_Y_max = 50
 光學中心(最高亮度位置)相對於影像中心的最大像素偏移量。為了最大限度地減少雜訊的影響,X 和 Y 光學中心是使用平滑值低於最大值 95% 的點之間的曲線的質心來定義的。 (由於實際最大值範圍很廣,因此極易受到雜訊的影響。)
相對照明最差角百分比最小值 = 40 最小角區亮度除以平滑影像的最大亮度。
Uniformity_RoverG_corners_pct_max = 10 最大 R/G 角不均勻性 = 100%( RG max - RG min )/ RG max ,其中RG max = 四個角的最大 R/G 比率; RG min = 四個角的最小 R/G 比率。
Uniformity_BoverG_corners_pct_max = 10 最大 B/G 角不均勻性 = 100%( BG max - BG min )/ BG max ,其中BG max = 四個角的最大 B/G 比率; BG min = 四個角的最小 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] 中心和角落紅藍球最大差異百分比 = 100%( RB max - RB min )/ RB max ,其中RB max = 中心和角落紅藍球最大比率; RB min = 中心和角落紅藍球最小比率。
R_div_B_ctr_corner_diff_pct_mean_max [v4.3+ Bayer RAW] 中心和角落紅藍比最大差異 % = 100%( RB max - RB mean )/ RB max ,其中RB max = 中心和角落紅藍比最大; RB mean = 角落紅藍比平均。
Center_Gb_Gr_variation_pct_max [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中心紅綠比允許值的範圍(最小值到最大值)。數值未經歸一化處理。
Center_B_div_G_unnorml_limits中心背景/背景比允許值的範圍[最小值 最大值]。數值未經歸一化處理。
中心 R 均值最大值 [v4.3+ Bayer RAW] 中心區域紅色通道平均像素最大值
中心 R 均值最小值 [v4.3+ Bayer RAW] 中心色塊紅色頻道平均像素最小值
中心 Gb 平均最大值 [v4.3+ Bayer RAW] 中心區域綠色(藍色)通道平均像素最大值
中心 Gb 平均值最小值 [v4.3+ Bayer RAW] 中心區域綠色(藍色)通道平均像素級最小值
中心群均值最大值 [v4.3+ Bayer RAW] 中心區域綠色(紅色)通道平均像素最大值
中心群均值最小值 [v4.3+ Bayer RAW] 中心區域綠色(紅色)通道平均像素級最小值
中心 B 均值最大值 [v4.3+ Bayer RAW] 中心區域藍色通道平均像素最大值
中心 B 均值最小值 [v4.3+ Bayer RAW] 中心區域藍色通道平均像素最大值
中心 R 標準最大值 [v4.3+ Bayer RAW] 中心色塊紅色通道標準差最大值
中心Gb_std_max [v4.3+ Bayer RAW] 中心區域綠色(藍色)通道標準差最大值
中心群標準最大值 [v4.3+ Bayer RAW] 中心區域綠色(紅色)通道標準差最大值
Center_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_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] 相同,用於顏色/色調互動式和顏色/色調自動。
[multi] 的其他條目(不在 [colorcheck] 中)將在可用時添加到下方。
相關文件:使用 Colorcheck
gamma_limits = .4 .7 伽瑪值的最小值和最大值。
exposure_error_f_stop_limits = -1 1 曝光誤差的限值(以光圈值表示)
Delta_E_2000_mean_max max(Delta-E 2000 平均值)
Delta-C_2000_mean_max max(Delta-C 2000 平均值)
Delta-E_2000_max_max max(Delta-E 2000 max)
Delta-C_2000_max_max max(Delta-C 2000 max)
Delta-E_mean_max max(Delta-E mean)
Delta-C_mean_max max(ΔC均值)
Delta-E_max_max 最大(ΔE 最大值)
Delta-C_max_max 最大(ΔC 最大值)
[失真]失真
SMIA_TV_Distortion_limits = -2 3 SMIA 電視失真限制
[多模式]用於顏色/色調互動式和顏色/色調自動彩色/灰階模組。以上所有顏色檢查設定也同樣適用。其他設定將在編程時輸入到下方。
如果您需要其他 P/F 參數,我們建議您查看 Color/Tone Interactive/Auto 的 JSON 輸出,以取得可用變數。
相關文件:
使用顏色/色調互動功能|使用顏色/色調自動功能
gamma_limits = .4 .7
 伽瑪值的最小值和最大值。 (0.4 和 0.7 適用於彩色空間影像。)
[stepchart]用於 Stepchart。有些條目與 [multi] 類似。
gamma_limits = .4 .7 伽瑪值的最小值和最大值。

在主 ini 檔案中引用 pass fail 文件

主 ini 設定檔應包含 [api] 部分,其中包含 Pass/Fail 設定檔的位置。

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

將 UUT(被測單元)資訊傳送給 Imatest IT(可選)

每個測試都可以有一個零件號和序號(均為字串),用於識別被測單元 (UUT)。

零件編號和序號會連同映像檔和定義圖片大小的資料一起傳遞給Imatest IT 。這些資料包含在一個 JSON 物件中,如下一個用Matlab編寫的範例所示。 Imatest IT版本將提供 C、C++ 等語言的範例。

首先將影像讀取為二進位。
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' 指的是檔案副檔名,其解碼參數在通用讀取原始設定中設定。

jstr.width = 1280; jstr.height = 720; jstr.ncolors = 1; 這些參數不用於通用讀取原始檔(Generalized Read Raw)解碼的原始檔。它們用於解碼標準格式的已處理影像。

覆蓋主 ini 檔案中設定的值

有時,我們可能需要在執行時間覆寫主 ini 檔案(例如上例中的 C:\Imatest\projects\sfrplus\SFRplus_5_rw3.ini)中的設置,例如,當需要按順序分析多個不同的影像時。這可以透過呼叫序列中的語句來實現。目前支援以下以酒紅色顯示的三個變數。 (這些字段,例如 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],
"passfail": {
"started_at": "2012-04-10 17:59:58",
"part_number": "X-1 火箭飛機",
"serial_number": "46-062",
"ended_at": "2012-04-10 18:00:00",
運行時: [1.848969517],
"Dead_pixels_max": [10],
「死像素」:[0],
"Dead_pixels_pf": [1],
"Dead_pixels_status": "已通過",
“Hot_pixels_max”:[10]
“熱像素”:[0],
"Hot_pixels_pf": [1],
"Hot_pixels_status": "已通過",
"Optical_center_offset_max": [50],
「Optical_center_offset」:[-30,14],
"Optical_center_offset_pf": [1],
"Optical_center_offset_status": "已通過"
}
}
}

解釋:對於死像素,最多允許有 10 個(由 ..._max 指定)。偵測到 0 個死像素。 “..._pf”: [1] 表示圖像符合標準。 “..._status”: “Passed” 也表示影像符合標準。這三行資料會在通過/失敗監視器中進行解析,以便於閱讀,該監視器會先列出失敗的結果。範例:

passfail_monitor_cropped_example
關鍵缺陷檢測結果顯示在合格/不合格監視器中

對於 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],
"passfail": {
"started_at": "2012-04-15 16:05:10",
"part_number": "X-1 火箭飛機",
"serial_number": "46-062",
"ended_at": "2012-04-15 16:05:15",
"runtime": [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],
"Horizontal_bars_OK": [1],
"Horizontal_bars_OK_passed": [1],
"偵測到所有邊緣 ID": [1]
"All_Edge_IDs_detected_OK": [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],
"偵測到預期顏色": [1],
"Color_expected_OK": [0],
"Color_expected_passed": [0],
"Stepchart_expected_detected": [1],
"Stepchart_expected_OK": [1],
"Stepchart_expected_passed": [1],
「旋轉角度」:[-0.6021933244],
"旋轉度數已通過": [1],
"FOV_degrees_diagonal_min": [62],
"FOV_degrees_diagonal": [103.8954245],
"FOV_passed": [1],
"Convergence_angle_max": [5],
"Convergence_angle_degrees_horz": [-1.816256865],
"Convergence_angle_degrees_vert": [-4.310448164],
"Convergence_angle_passed": [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]
}
}
}