在「NormalizedcrossCorreslation.va」中,是根據式 (55) 所描述的 NCC 演算法,在影像中識別出一個物件。 在圖409中,您可以看到「NormalizedCrossCorrelation.va」的基本設計結構。
在影像中
來自 Camera Link Base 組態的 RGB 相機,定義了 FIRkernelNxM operator 12x12像素的影像核心。
核心大小取決於要識別的物件。
該物件與方程式中的參考影像相同
中的方程式 55。
使用運算子選擇一個色彩分量(在此處為紅色) SelectComponent 用於根據方程式識別具有 NCC 演算法的物件
55 在 HierarchicalBox NCC中。其結果是透過 DMA 將二值化影像傳送到 PC,該影像的大小與原始輸入影像相同,在識別出的物件位置處數值為「1」,在任何其他位置處為「0」。
此範例針對 RGB 測試影像「PCB.tif」進行組態,您可以在 VisualApplets 安裝目錄中的
examples\Processing\ObjectFeatures\NormalizedCrossCorrelation 下找到它。
此影像的尺寸為 1024x712 像素。在圖 410 中顯示了測試影像。
PCB 板左下角的六個小孔,即是本範例中待辨識的目標。目標 的尺寸為 12x12 像素。 在方框內的設計中 NCC (參見圖409)中的設計中,已實作根據方程式 55來定位這些目標的演算法。關於對應方程式部分的進一步資訊,請參閱連結及 HierarchicalbBoxes 旁的註解框。在圖411中,您可以看到 HierarchicalBox 的內容 NCC的內容。
您可以如下所述調整設計範例以符合您選擇的影像和物件。如果您想要使用灰階影像取代 RGB 影像,只需將運算子 BaseRgbCamera 取代為運算子 BaseGrayCamera 並刪除運算子 SelectComponent。
-
將運算子 FIRkernelNXM_12x12 的大小調整為您要在影像中識別的物件尺寸。
-
在 HierarchicalBox NCC 下的「Properties」上按一下滑鼠右鍵,即可設定要尋找的物件像素數量「K」。物件大小為 12x12 時,K 為 144。您也可以在「Properties」下調整二值化閾值。 此閾值用於在結果影像中以「1」視覺化物件的位置。
-
在 HierarchicalBox NCC 中的 CONST 運算子 One 輸出端,將核心的欄數與列數調整為物件尺寸。
-
載入要識別之物體的像素值檔案(即
)
至 FIRoperatorNxM IxR 位於 HierarchicalBox NCC。您可以使用程式 "NCC.m" 來建立此檔案 ("R.txt")。
-
將相同的檔案載入至 HierarchicalBox Sigma_R 中 Rmean_Mult_K 的 FIRoperatornxM NCC。
-
將檔案 "Rpower2.txt"(透過 Matlab 程式 "NCC.m" 建立)載入至 FIRoperatorNxM Sum_R_R 位於 HierarchicalBox Sigma_R。 此檔案的內容為物體像素值(除以 2)的平方
.
在 HierarchicalBox Division (參見圖 411)最終結果
方程式 55
透過除法運算計算得出 DIV。您可以查看方塊的內容 Division 如圖 412.
除法運算執行時帶有六個小數位,因此結果
介於 -64 與 64 之間,而非 -1 與 1 之間。為了視覺化所識別物體的位置,結果影像會透過以下方式進行二值化: IS_GreaterEqual operator
Threshold。在此範例中,閾值設為 50。您可以直接在運算子中變更此數值,或者如上述透過在方塊上按一下「滑鼠右鍵」來變更
NCC。傳送至 PC 的結果影像如圖所示。 413.位於 PCB 板左下角小孔位置的像素(見圖 410)會取得數值「1」,而所有其他像素則為「0」。結果影像會透過 DMA 傳送至 PC。除此之外,它也可以作為後續影像處理步驟的輸入。

上一頁

