class 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 轴(列)投影直方图的整数计数列表。仅当调用 find_blobs(...)x_hist_bins_max > 0 才会填充;否则为空。索引 [12]

y_hist_bins

色块 Y 轴(行)投影直方图的整数计数列表。仅当调用 find_blobs(...)y_hist_bins_max > 0 才会填充;否则为空。索引 [13]