跳至內容
測試伺服器
開發伺服器

Measurements Basic vTool#

Measurements vTool 允許您測量圖像中邊緣的位置和距離。

Measurements vTool 透過 Image 輸入接腳接收圖像,並透過其 output pins 輸出有關所找到邊緣的資訊。

如果您在測量前使用 Calibration vTool 並連接兩個 vTool 的 Transformation 輸出/輸入接腳,由 Calibration vTool 提供的轉換資料將允許 Measurements vTool 以公尺為單位的世界座標輸出匹配項的位置和距離(Positions_m 和 Distances_m 輸出接腳將會啟用)。

如果您在測量前使用 Matching vTool 和 Image Alignment vTool,則可以測量出現位置與參考圖像不同的物件。透過 InverseTf 輸入針腳提供的轉換可讓 vTool 輸出原始輸入圖像的測量結果。

若要購買 Measurements Basic vTool 的授權,請造訪 Basler 網站。

Measurements Basic vTool

運作原理#

透過定義圖像剖面並將其應用於輸入圖像,您可以收集以下資訊:

  • 邊緣位置
  • 邊緣振幅
  • 邊緣之間的距離
  • 包含邊緣視覺化效果的區域

Image Profile Definition#

在其最簡單的形式中,圖像剖面是一條長度為 x 像素且寬度為 1 像素的直線。沿著其長度,圖像中的灰階值以單像素為間隔進行擷取。從數學上講,圖像剖面是一個將一維像素位置陣列對應到其圖像灰階值的函數。

為獲得更好的結果,Basler 建議將 profile 寬度增加到大於 1 像素的值。一般而言,profile 越寬,影像雜訊的影響就越小。如果增加寬度,profile 將實質上變成一個長方形,而 profile line 則貫穿其中間。

在 vTool 的設定對話框中,您可以使用影像顯示區域中的控制代碼來移動、調整大小和旋轉測量矩形,或者您可以在 Rectangle Settings 區域中手動輸入所需的資訊。或者,您也可以透過 Rectangle input pin 提供矩形。如果這樣做,Rectangle Settings 區域中的選項將變為不可用(唯讀)。

個別 profile 值是透過等比例擷取 profile line 上方和下方的影像像素來產生的。為說明這一點,想像一個寬度為 w 的 profile。為了產生 profile 值,系統會考慮 profile line 上方的 w/2 個像素和下方的 w/2 個像素。

資訊

作為指導原則,對於小型邊緣,請選擇至少 5 到 7 像素的 profile 寬度。

您還應考慮邊緣的位置可能會在垂直於 profile line 的方向上發生變化。Basler 建議測試幾張不同的影像,以了解物體實際變化的程度。根據結果,您可以選擇 profile 的寬度。例如,如果邊緣長度為 50 像素,且(正交)物體移動量為 30 像素,則選擇 20 像素的 profile 寬度。

調整矩形的方向,使 profile line 與邊緣呈直角。

邊緣偵測#

邊緣定義為區域最強絕對梯度幅度的位置。通常,profile 訊號會透過低通濾波器進行平滑處理。使用 Smoothing 選項來設定濾波器的強度。如果您想測量邊緣之間距離很小的微小結構(例如 5 到 10 像素),請設定較低的平滑值(例如 1.0)。如果邊緣之間的距離較大或影像存在雜訊,請加強平滑處理。

梯度的區域極端值必須大於指定的 Threshold 值,才能被接受為邊緣。嘗試不同的閾值以尋找最佳設定。最佳值介於剛好能偵測到所有目標邊緣的上限值,以及不再偵測到不需要邊緣的下限值之間。

Edge Selection#

邊緣具有正梯度或負梯度。這對應於 Amplitudes 輸出。如果邊緣梯度為正,則過渡為由暗到亮。如果邊緣梯度為負,則過渡為由亮到暗。如果您預期您的應用程式只會找到一種型態的過渡,請相應地設定 Transition 選項。

如果您只想測量單一邊緣位置,而不是將 Select 選項設定為 All,將檢測到的邊緣集合限制為僅單一目標邊緣可能會有所幫助。這也會使應用程式變得更強固,並且會忽略 profile 區域中的其他(不需要的)邊緣。要選擇的單一邊緣可以是第一個、最後一個或最強的(就梯度幅度而言)邊緣。

使用校正#

產生的位置與距離也可以公尺為單位輸出為世界座標。若要實現此目的,請將 Calibration vTool 的 Transformation 輸出接腳連接至 Measurements vTool 的 Transformation 輸入接腳。

資訊

測量平面是三維世界中要測量的邊緣所在的平面。在要處理的每個影像中,邊緣在測量平面內具有不同的位置。透過將校正板的表面放置在此測量平面中來對齊此測量平面。

您必須使用與實際處理相同的校正設定來設定 Measurements vTool。

使用 Image Alignment#

Measurements Basic vTool 要求要測量的形狀始終處於相同位置。否則,檢測將會失敗。為了給您更大的靈活性,您可以將 Matching vTool 和 Image Alignment vTool 新增至您的 recipe 中。

與參考影像相比,Matching 能夠在輸入影像中的不同位置檢測所需的形狀。它會計算並輸出對齊轉換資料,然後 Image Alignment vTool 會使用這些資料為 Measurements Basic vTool 提供對齊後的輸入影像。現在,就可以對形狀進行測量了。

Measurements Basic vTool 還會接收反向轉換資料,利用該資料,它可以針對輸入影像輸出正確的位置資料,而不是針對對齊後的影像。

設定 vTool#

若要設定 Measurements vTool:

Measurements vTool Settings

  1. 在 vTool Settings 區域的 Recipe Management 窗格中,按一下 Open Settings 或按兩下該 vTool。
    隨即會開啟 Measurements Basic 對話框。
  2. 擷取或開啟影像。
  3. 在 Rectangle Settings 區域中,透過手動輸入數值或使用測量矩形的控制代碼來移動、調整大小和旋轉它,以符合您想要測量的影像部分,藉此定義影像 profile。
    或者,連接 Rectangle input pin 以提供測量矩形。
    從左向右指向的水平 profile line 的角度為 0。
  4. 在 Detection Settings 區域中,設定 Smoothing 和 Threshold,以穩健且精確的方式偵測邊緣。
  5. 設定 Transition 與 Select,以確保僅選取目標邊緣。

您可以在 pin data view 中檢視量測結果。在這裡,您可以選擇要顯示哪些輸出。

Inputs#

Image#

直接接收來自 Camera vTool 或輸出影像之 vTool(例如 Image Format Converter vTool)的影像。

  • 資料類型:Image
  • 影像格式:8 位元至 16 位元單色或彩色影像。彩色影像會在內部轉換為單色影像。

InverseTf#

接受對齊轉換的反向轉換資料。藉此,vTool 可以針對輸入影像而非對齊後的影像輸出正確的位置資料。

  • 資料類型:轉換資料

Rectangle#

接受一個矩形來定義測量矩形。如果連接了此輸入接腳,將會使用來自輸入的矩形參數,且對話方塊中的矩形設定將為唯讀狀態。

  • Data Type: RectangleF

Transformation#

接受來自「Calibration vTool」的轉換資料。

  • 資料類型:轉換資料

Outputs#

Positions_px#

傳回影像座標(列/行)中的邊緣點。

  • 資料類型:PointF 陣列

Positions_m#

傳回以公尺為單位(x/y)的世界座標中的邊緣點。

  • 資料類型:PointF 陣列

Amplitudes#

傳回邊緣的幅度。正幅度表示由暗到亮的過渡。負幅度表示由亮到暗的過渡。

  • 資料類型:浮點數陣列

Distances_px#

傳回影像座標(列/行)中兩個相鄰邊緣之間的距離。距離的數量比邊緣數量少一。

  • 資料類型:浮點數陣列

Distances_m#

傳回以公尺為單位(x/y)的世界座標中兩個相鄰邊緣之間的距離。距離的數量比邊緣數量少一。

  • 資料類型:浮點數陣列

Regions#

為找到的每一個邊緣傳回一個區域。

  • 資料類型:Region Array

典型前置項目#