4.8 KiB
4.8 KiB
#领域/MaixCam
一句话描述
说明 Image.find_bobs 函数
核心定义
查找图像中的所有色块(blobs / 连通域),并返回一个 image.Blob 类的列表,每个 image.Blob 实例用于描述一个色块
最小实现代码
img = cam.read()
...
blobs = img.find_blobs((0, 100, -129, 129, -129, 129),
pixels_threshold=200,
merge=True,
margin=5
)
函数定义
def find_blobs(
self,
thresholds: list[list[int]] = [],
invert: bool = False,
roi: list[int] = [],
x_stride: int = 2,
y_stride: int = 1,
area_threshold: int = 10,
pixels_threshold: int = 10,
merge: bool = False,
margin: int = 0,
x_hist_bins_max: int = 0,
y_hist_bins_max: int = 0
) -> list[Blob]:
参数说明
| 参数名 | 描述 |
|---|---|
| thresholds | 可定义多个阈值: - 灰度(GRAYSCALE)格式:使用 {{Lmin, Lmax}, ...} 定义一个或多个阈值;- RGB888 格式:使用 {{Lmin, Lmax, Amin, Amax, Bmin, Bmax}, ...} 定义一个或多个阈值;其中大写 L/A/B 代表 LAB 图像格式的对应通道,min/max 代表对应通道的最小值和最大值。 |
| invert | 若设为 True,会在查找色块前反转阈值,默认值为 False。 |
| roi | 感兴趣区域(ROI),输入格式为 (x, y, w, h):x 和 y 为左上角坐标,w 和 h 为 ROI 的宽度和高度;默认值为空列表,代表处理整张图像。 |
| x_stride | X 方向步长,即执行霍夫变换时跳过的 X 方向像素数,默认值为 2。 |
| y_stride | Y 方向步长,即执行霍夫变换时跳过的 Y 方向像素数,默认值为 1。 |
| area_threshold | 面积阈值:若色块面积小于该值,则不返回该色块,默认值为 10。 |
| pixels_threshold | 像素数阈值:若色块的像素数量小于该值,则不返回该色块,默认值为 10; 当 x_stride 和 y_stride 均为 1 时,该参数与 area_threshold 等效。 |
| merge | 若设为 True,会合并所有未被过滤、且外接矩形相交的色块,默认值为 False。 |
| margin | 边距:用于在相交检测时扩大 / 缩小色块外接矩形的尺寸;例如,边距设为 1 时,外接矩形间距为 1 像素的色块会被合并,默认值为 0。 |
| x_hist_bins_max | 若设为非 0 值,会在每个色块对象中填充一个直方图缓冲区,存储该对象所有列的 X 方向直方图投影;该值用于设置投影的分箱数,默认值为 0。 |
| y_hist_bins_max | 若设为非 0 值,会在每个色块对象中填充一个直方图缓冲区,存储该对象所有行的 Y 方向直方图投影;该值用于设置投影的分箱数,默认值为 0。 |