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時為1;merge=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]。