Definition of Object Features

斑點分析會擷取所偵測物件的特徵。物件本身的影像則不提供。斑點分析運算子提供最常見物件特徵的計算,這些特徵透過幾何與統計方法來描述物件。相應地,這些特徵

  • 面積
  • 邊界框
  • 重心
  • 輪廓長度

均受支援。各特徵的完整定義將於下文介紹。

Area

影像中的每個物件都可以透過該物件所包含的所有前景像素座標清單來描述 。 因此,物件或其區域 R 可以描述為

物件的面積即為物件的像素數量,亦即區域 R 的大小。

或者換句話說:物件的面積是其所有像素的總和。此特徵通常用於區分大小不同的物件。

Bounding Box

區域 R 的邊界框是剛好包覆該物件的最小軸平行矩形。這是一個簡單但非常實用的特徵,用於描述物件在影像中的位置。

此特徵為每個物件提供四個值,在 VisualApplets 中描述為

此特徵對於 'BlobDetector1D' 和 'Blob_Analysis_1D' 運算子而言有所不同,因為無法給出物件的絕對座標。

Center of Gravity

重心是在 x 與 y 方向上計算得出,為物件所有絕對座標的總和。每個物件的原點為影像的左上角。

進行明確的生命週期管理即呼叫

重心值未經過正規化。在進行斑點分析後,必須將其除以物件面積。若要執行此除法,請使用 DIV 運算子(位於 arithmetics 程式庫中)。或者,您也可以在主機 PC 上計算除法。

進行明確的生命週期管理即呼叫

此特徵對於 'BlobDetector1D' 和 'Blob_Analysis_1D' 運算子而言有所不同,因為無法給出物件的絕對座標。

Contour Length

此特徵由物件所有輪廓的長度所定義。其中包含外緣與內緣(後者由孔洞所造成)。

[注意] 此特徵僅適用於舊版運算子 Blob_Analysis_1D 與 Blob_Analysis_2D

此特徵僅適用於舊版運算子 'Blob_Analysis_1D' 與 'Blob_Analysis_2D',不適用於運算子 'BlobDetector1D' 與 'BlobDetector2D'。

Contour Length 區分 4 連通鄰域與 8 連通鄰域。如果斑點分析運算子設定為使用 4 連通鄰域來偵測物件,則輪廓長度僅透過在正交方向上掃描物件邊緣來決定。如果斑點分析運算子設定為 8 連通鄰域,輪廓長度也會考慮對角連接的物件邊緣。因此,根據運算子的鄰域設定,此特徵會提供兩種不同的結果。

下方兩張圖說明瞭此差異。兩張圖皆顯示包含單一物件的影像。

在上圖中,物件是使用 4 連通鄰域偵測到的。對於此物件,輪廓長度加總了所有位於物件邊緣的像素。僅考慮水平與垂直的像素連接。因此,該物件的輪廓長度結果為 30 倍正交長度。

在下圖中,斑點分析使用 8 連通鄰域。輪廓長度同時也考慮了對角邊緣。該物件的輪廓長度結果為 14 倍正交長度 + 8 倍對角長度。

兩者的輪廓長度結果有所不同。

4-Connected Neighborhood:Contour Orthogonal = 30,Diagonal = 0

圖 418. 4-連通鄰域:等高線正交 = 30,對角線 = 0


8-Connected Neighborhood:Contour Orthogonal = 14,Diagonal = 8

圖 419. 8-連通鄰域:等高線正交 = 14,對角線 = 8


對角連接兩個相鄰像素的邊緣具有輪廓長度 其代表等腰三角形的斜邊。此平方根運算不由 blob 分析算子執行。請確保在您的設計中於後續執行此運算。總輪廓長度可透過以下方式獲得

對於邊緣不與圖像邊緣平行的物件,輪廓長度的對角線分量非常重要。

例如,半徑為 5.5 像素的圓形其周長將為 。下圖展示了這個圓形。在左側圖表中,周長是使用 8-connected neighborhood 計算的。在右側圖表中,周長是使用 4-connected neighborhood 計算的。該範例顯示,使用 8-connected neighborhood 計算的結果(32.97)接近理論結果(34.56),而使用 4-connected neighborhood 計算的結果(40)則相當差——它等於具有相同直徑的矩形的周長。

使用 8-connected neighborhood(左)與 4-connected neighborhood(右)計算周長

圖 420. 採用 8 連通鄰域(左)與 4 連通鄰域(右)計算周長