class Blob -- Blob 物件

blob 物件是由 Image.find_blobs() 回傳的 attrtuple。每個色塊代表一塊相連的像素區域,這些像素符合傳遞給 find_blobs() 的一個或多個色彩閾值。此物件將色塊的邊界框、形心、像素數量、周長、方向、面積密度度量、命中它的閾值集合、旋轉的最小面積矩形,以及選用的 X/Y 投影直方圖一併封裝。

欄位可透過屬性名稱(blob.x)或索引(blob[0])存取。此物件沒有公開的建構子。

class image.blob

請呼叫 Image.find_blobs() 來建立此物件。

邊界框與形心

x

邊界框左上角的 x 座標,以像素為單位。整數。索引 [0]

y

邊界框左上角的 y 座標,以像素為單位。整數。索引 [1]

w

邊界框寬度,以像素為單位。整數。索引 [2]

h

邊界框高度,以像素為單位。整數。索引 [3]

cx

形心 x 座標(色塊的像素平均值),四捨五入為整數。整數。索引 [4]

cy

形心 y 座標(色塊的像素平均值),四捨五入為整數。整數。索引 [5]

cxf

以次像素浮點數表示的形心 x 座標。索引 [16]

cyf

以次像素浮點數表示的形心 y 座標。索引 [17]

rect

邊界框的 (x, y, w, h) 4 元組。適合直接傳遞給繪製/裁切方法,例如 Image.draw_rectangle()Image.crop()。索引 [22]

形狀描述子

pixels

組成此色塊的像素數量。整數。索引 [6]

area

軸對齊邊界框的面積(w * h)。整數。索引 [19]

density

pixels / area——色塊填滿邊界框的比例。範圍為 0.0 至 1.0 的浮點數。實心矩形趨近於 1.0;細長的對角線則趨近於 0.0。索引 [20]

perimeter

色塊外周長上的像素數量。整數。索引 [10]

roundness

由色塊的二階矩計算出的短軸與長軸比值。範圍為 0.0 至 1.0 的浮點數;1.0 為完美的圓形,0.0 為一條線。索引 [11]

elongation

1.0 - roundness——範圍為 0.0 至 1.0 的數值,其中 0.0 為完美的圓形,1.0 為一條線。索引 [18]

compactness

(pixels * 4 * pi) / (perimeter * perimeter)。在給定面積下圓形具有最小周長,因此此度量對完美圓形為 1.0,並隨色塊變得更不規則或更細長而下降。浮點數。索引 [21]

rotation

由色塊的二階矩推導出的色塊方向,以弧度為單位。範圍為 0 至 pi 的浮點數(由於軸是對稱的,因此超過 pi 後方向會有歧義)。對細長的色塊最為準確——對接近圓形的色塊,數值會變得不穩定。索引 [7]

閾值/合併中繼資料

code

32 位元點陣圖,對於此色塊所符合的每個色彩閾值(如同傳遞給 Image.find_blobs())各設定一個位元。使用單一閾值時,code == 1。對於合併的多色色塊(merge=True),可能會設定超過一個位元。索引 [8]

count

合併進此色塊的來源色塊數量。merge=False 時為 1merge=True 時可能更大。索引 [9]

角點

corners

由四個 (x, y) 整數元組組成的 4 元組,代表色塊的四個極端角,從左上角開始順時針排序。這些是由輪廓導出的角點(色塊邊界上沿四條對角線離形心最遠的點)。索引 [14]

min_corners

由四個 (x, y) 整數元組組成的 4 元組,代表色塊最小面積旋轉邊界矩形的四個角。搭配 rotation 一起使用,可得到對色塊最緊密的擬合。索引 [15]

投影直方圖

x_hist_bins

色塊 X 軸(欄)投影直方圖的整數計數清單。僅在以 x_hist_bins_max > 0 呼叫 find_blobs(...) 時才會填入;否則為空。索引 [12]

y_hist_bins

色塊 Y 軸(列)投影直方圖的整數計數清單。僅在以 y_hist_bins_max > 0 呼叫 find_blobs(...) 時才會填入;否則為空。索引 [13]