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时为1;merge=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]。