find_circles识别圆
find_circles(roi: Tuple[int, int, int, int] | None = None, x_stride=2, y_stride=1, threshold=2000, x_margin=10, y_margin=10, r_margin=10, r_min=2, r_max: int | None = None, r_step=2)→ List[circle]
使用霍夫变换在图像中查找圆。返回 image.circle 对象的列表。
roi 是感兴趣区域的矩形元组(x, y, w, h)。如果未指定,则等于图像矩形。仅操作 roi 内的像素。
x_stride 是在进行霍夫变换时要跳过的x像素数。仅当要搜索的圆较大且笨重时才增加此值。
y_stride 是在进行霍夫变换时要跳过的y像素数。仅当要搜索的圆较大且笨重时才增加此值。
threshold 控制从霍夫变换中检测到的圆。仅返回幅度大于或等于 threshold 的圆。对于您的应用程序,threshold 的正确值取决于图像。请注意,圆的幅度是由构成该圆的所有sobel滤波器幅度的像素的总和。
x_margin 控制检测到的圆的合并。相隔 x_margin 、 y_margin 和 r_margin 像素的圆将被合并。
y_margin 控制检测到的圆的合并。相隔 x_margin 、 y_margin 和 r_margin 像素的圆将被合并。
r_margin 控制检测到的圆的合并。相隔 x_margin 、 y_margin 和 r_margin 像素的圆将被合并。
r_min 控制检测到的最小圆半径。增加此值以加快算法。默认为2。
r_max 控制检测到的最大圆半径。减小此值以加快算法。默认为min(roi.w/2, roi.h/2)。
r_step 控制半径检测的步长。默认为2。
此方法在 OpenMV Cam M4 上不可用。
** for c in img.find_circles(threshold = 3500, x_margin = 10, y_margin = 10, r_margin = 10,r_min = 2, r_max = 100, r_step = 2)😗*