cv2.SimpleBlobDetector_create如何获取检测到的斑点的圆心与半径
时间: 2024-02-26 18:56:39 浏览: 21
使用OpenCV中的SimpleBlobDetector_create函数创建Blob检测器后,可以通过以下步骤获取检测到的斑点的圆心与半径:
1.使用detect函数检测图像中的斑点,该函数的返回值是一个关于检测到的斑点的信息的vector。
2.遍历这个vector,获取每个斑点的圆心和半径。
下面是一个示例代码:
```
import cv2
# 创建SimpleBlobDetector参数设置
params = cv2.SimpleBlobDetector_Params()
# 设置斑点的阈值范围
params.minThreshold = 10
params.maxThreshold = 200
# 设置斑点的面积范围
params.filterByArea = True
params.minArea = 100
params.maxArea = 5000
# 创建Blob检测器
detector = cv2.SimpleBlobDetector_create(params)
# 读取图像
img = cv2.imread("blob.jpg", cv2.IMREAD_GRAYSCALE)
# 检测斑点
keypoints = detector.detect(img)
# 遍历斑点信息,获取圆心和半径
for k in keypoints:
x = int(k.pt[0])
y = int(k.pt[1])
r = int(k.size / 2)
print("Circle center: ({},{}), radius: {}".format(x,y,r))
```
在上面的示例代码中,我们创建了一个SimpleBlobDetector,并用它来检测一张灰度图像中的斑点。检测到的斑点信息存储在一个关于Keypoint的vector中。我们遍历这个vector,获取每个斑点的圆心和半径,并打印输出。