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

上一頁

