You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OpenCV在图像上标注数值并绘制更大尺寸的识别圆圈

管道计数代码标记圈放大调整方案

你当前代码绘制的标记圆圈过小,是由drawKeypoints参数配置错误导致的,按以下步骤修改即可实现需求:


修改点说明

    1. 替换绘制标志
      你第二段自定义参数检测后的绘制代码使用了cv2.DRAW_MATCHES_FLAGS_DEFAULT,该参数只会绘制固定尺寸的小标记点,替换为cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS即可根据管道的实际尺寸自动匹配标记圆圈大小。
    1. 可选:手动控制标记圈放大倍数
      如果自动匹配的尺寸还是不符合需求,可以遍历检测到的关键点手动画圆,自定义放大系数调整标记大小。

调整后完整代码

# 导入依赖库
import cv2
import numpy as np

# 加载图像
image = cv2.imread("enhanced.sample3.png")
cv2.waitKey(0)

# 创建默认参数的blob检测器
detector = cv2.SimpleBlobDetector_create()
keypoints = detector.detect(image)
blank = np.zeros((1,1))
blobs = cv2.drawKeypoints(image, keypoints, blank, (0,0,255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

number_of_blobs = len(keypoints)
text = "总blob数量: " + str(number_of_blobs)
cv2.putText(blobs, text, (2, 55), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255,255,255), 2)

cv2.waitKey(0)

# 配置自定义blob检测参数
params = cv2.SimpleBlobDetector_Params()
# 面积过滤
params.filterByArea = True
params.minArea = 100
# 圆度过滤
params.filterByCircularity = True
params.minCircularity = 0.4
# 凸度过滤
params.filterByConvexity = True
params.minConvexity = 0.3
# 惯性比过滤
params.filterByInertia = True
params.minInertiaRatio = 0.01

detector = cv2.SimpleBlobDetector_create(params)
keypoints = detector.detect(image)
number_of_blobs = len(keypoints)
print("圆形blob数量: " + str(number_of_blobs))

# ========== 此处为修改部分 ==========
# 方案1:仅替换绘制标志,自动适配管道尺寸画圈
# blobs = cv2.drawKeypoints(image, keypoints, np.zeros((1,1)), (0,200,222), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

# 方案2:手动画圈,可自定义放大倍数,scale参数按需调整
blobs = image.copy()
scale = 1.8 # 标记圈放大系数,数值越大圈越大
for kp in keypoints:
    x, y = int(kp.pt[0]), int(kp.pt[1])
    radius = int(kp.size/2 * scale)
    cv2.circle(blobs, (x, y), radius, (0,200,222), 2)
# ====================================

text = "圆形管道数量: " + str(number_of_blobs)
cv2.putText(blobs, text, (1, 55), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255,255,255), 2)

cv2.imshow("检测结果", blobs)
cv2.waitKey(0)
cv2.destroyAllWindows()

内容的提问来源于stack exchange,提问作者Sumukh Jadhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:57:03