在「NormalizedcrossCorreslation.va」中,是根據式 (55) 所描述的 NCC 演算法,在影像中識別出一個物件。 在圖387中,您可以看到「NormalizedCrossCorrelation.vad」的基本設計結構。
在一張圖片中
來自Camera Link 基礎配置中的 RGB 攝影機
定義了一個 12x12 像素的影像核心,其定義如下: FIRkernelNxM operator 12x12. 核大小取決於待識別的物件。
該物件與參考影像完全相同
在式中 55.
透過運算子選取一個顏色成分(此處為紅色) SelectComponent 根據公式,利用 NCC 演算法識別物件。
55 在 HierarchicalBox 中 NCC. 結果會產生一張二值圖像,其尺寸與原始
輸入圖像相同,在識別出的物件位置呈現值「1」,其他位置則為「0」,並透過 DMA 傳送至 PC。
此範例是針對 RGB 測試影像「PCB.tif」所進行的設定,您可在VisualApplets 的安裝目錄下,於
examples\Processing\ObjectFeatures\NormalizedCrossCorrelation 中找到該檔案。
此影像的尺寸為 1024x712 像素。如圖所示。 388 顯示測試圖像。
PCB 板左下角的六個小孔,即是本範例中需辨識的目標。目標 的尺寸為 12x12 像素。 在方框內的設計中 NCC (參見圖387)中的設計中,已實作根據式 55定位這些目標的演算法。關於對應方程式部分的進一步資訊,請參閱連結及 HierarchicalbBoxes 旁邊的註解框。在圖389中,您可以看到 HierarchicalBox 的內容 NCC的內容。
您可以依照以下說明,將此設計範例套用至您選擇的圖片與物件。若您想使用 灰階圖片而非 RGB 圖片,只需將 operator BaseRgbCamera 替換為 BaseGrayCamera ,並刪除操作員 SelectComponent。
-
調整運算子的大小 FIRkernelNXM_12x12 的尺寸,使其與您要在影像中辨識的物件尺寸相符。
-
在 HierarchicalBox 上「按右鍵」 NCC 在「屬性」中,您可以設定要搜尋的物件的 像素數「K」。若物件大小為 12x12,則 K 為 144。在「屬性」中,您也可以調整二值化 閾值。 此閾值用於將物件的位置以「1」顯示於結果影像中。
-
將核心的列數和行數調整為 CONST 運算子 One 在 HierarchicalBox 中的 NCC.
-
載入待識別物件的像素值檔案(該檔案為
)
至 FIRoperatorNxM IxR 在 HierarchicalBox 中 NCC. 您可以使用程式「NCC.m」來建立此檔案(「R.txt」)。
-
將同一份檔案載入至 FIRoperatornxM Rmean_Mult_K 中,位於 HierarchicalBox 內 Sigma_R 位於階層式框中 NCC.
-
將檔案「Rpower2.txt」(由 Matlab 程式「NCC.m」所建立)載入至 FIRoperatorNxM Sum_R_R 在 HierarchicalBox 中 Sigma_R. 此檔案的內容為物件的像素值(除以 2)的二的冪次
.
在 HierarchicalBox 部門 (參見圖 389) 最終結果
關於該方程式的 55
是透過除法運算計算得出的 DIV. 您可以查看方框中的內容 部門 如圖 390.
除法運算採用六位小數,也就是說,運算結果為
範圍
介於 -64 至 64 之間,而非 -1 至 1。為了可視化已識別物件的位置,會將結果影像二值化
並 IS_GreaterEqual operator
閾值. 此範例中,閾值設定為 50。您可以直接在運算子中調整此數值,或如上所述
透過在方塊上「按右鍵」來調整
NCC. 傳送至電腦的結果圖如圖所示。 391. 位於 PCB 板
左下角的小孔位置處的像素(參見圖 388) 取得數值「1」,其餘所有像素則為「0」。結果圖像會透過 DMA 傳送至個人電腦。
此外,該圖像亦可作為後續影像處理步驟的輸入。

上一頁

