Imatest 通過/失敗操作和參考
介紹
Imatest可以為需要傳回通過/失敗 (P/F) 結果的應用(例如工業相機測試)提供此類結果。雖然通過/失敗結果主要面向Imatest IT (工業測試; DLL和EXE檔案),但它也適用於基於 GUI 的Imatest版本( Studio除外)。在這些版本中,通過/失敗監視器對於預覽Imatest IT的 P/F 閾值設定結果特別有用。
開始使用及格/不及格製
|
概括
- 透過/失敗設定(最小值、最大值或限制)以通常的 ini 檔案格式儲存在自己的 ini 檔案中(與標準 ini 檔案:imatest-v2.ini 或其他檔案分開);
[部分]
參數 = 值
評論以分號開頭。
[section] 對應於模組,支援的模組清單如下。由於此檔案包含相機規格的值,因此通常稱為“spec.ini”檔案。如果您需要的設定未列出,請聯絡我們:新增設定相對簡單。
- pass/fail ini 檔案由客戶使用文字編輯器或Imatest INI 檔案編輯器進行維護和更新。
- pass/fail ini 檔案的完整路徑名在主 ini 檔案的 [api] 部分中輸入,格式如下:

通過/失敗監控
[api]
passFail = fullPathName 。
這可以透過開啟「設定」、「IT 和通過/失敗設定」 ,然後在對應的方塊中輸入完整路徑名稱來完成。
- 被測單元 (UUT) 的相關資訊必須以與將影像陣列屬性傳遞給 Imatest DLL 模組相同的 JSON 物件(字串)的形式傳遞給Imatest 。
- UUT 的零件編號、序號、通過/失敗設定、結果值以及通過/失敗結果(1 或 0)將以 JSON 物件的形式傳回呼叫程式。
- 透過/失敗監視器(如右圖所示)可以在Imatest的 GUI 版本中即時顯示透過/失敗結果和(如果選擇)歷史記錄,並在計算結果後立即顯示。
| 部分 | 描述 |
| [顏色檢查] | 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。
客戶必須根據自身需求更新此文件。如有需要,我們將添加其他尺寸資訊。
通過/失敗參考
根據客戶要求,可增加其他尺寸。
| 斜邊模組[sfrplus]、[esfriso]、[sfrreg]、[checkerboard] 和 [sfr] | ||
[sfrreg]、[checkerboard] 和 [sfr] 是 SFRplus 的子集。 | ||
| 具有典型參數的變數 | 描述 | |
| 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 最低準確度 | |
[平場] 用於分析均勻光場 | ||
| 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” 也表示影像符合標準。這三行資料會在通過/失敗監視器中進行解析,以便於閱讀,該監視器會先列出失敗的結果。範例:

對於 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]
}
}
}