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

使用cv2.HoughCircles检测手绘圆时误检严重,无法识别真实圆

手绘圆检测问题的排查与解决思路

一、先搞定预处理环节(核心问题大概率在这)

手绘圆本身边缘不规整,加上白纸污渍、钢笔毛边等干扰,直接用原始灰度/二值图喂算法肯定出问题,必须做针对性预处理:

  • 去噪+平滑:别直接二值化,先做高斯模糊保留边缘,比如cv2.GaussianBlur(gray, (5,5), 0);笔迹毛边多的话,再加一次cv2.medianBlur(blur_gray, 3)去除椒盐噪声。
  • 自适应二值化:全局二值化容易因光照不均误判污渍,改用自适应模式把笔迹转成白色前景:
    adaptive_thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
    
  • 形态学清理:用闭运算补笔迹缺口,开运算去小噪点:
    kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3,3))
    cleaned = cv2.morphologyEx(adaptive_thresh, cv2.MORPH_CLOSE, kernel)
    cleaned = cv2.morphologyEx(cleaned, cv2.MORPH_OPEN, kernel)
    

二、针对cv2.HoughCircles的参数适配

手绘圆不是完美正圆,默认参数不适用,得针对性调整:

  • param1:设为Canny边缘检测的高阈值,手绘边缘弱,调到30-50即可,别用默认的100;
  • param2:累加器阈值,关键是配合半径范围。先确定手绘圆的半径区间(比如20-50像素),锁死minRadius和maxRadius,过滤无效假圆;
  • 示例调用:
    circles = cv2.HoughCircles(cleaned, cv2.HOUGH_GRADIENT, dp=1.2, minDist=50,
                               param1=40, param2=25, minRadius=20, maxRadius=50)
    
    minDist设为大于圆直径的一半,避免重复检测同一个圆。

三、轮廓检测的噪声优化(解决卡顿问题)

轮廓检测慢是因为没过滤无效小轮廓,加两步过滤就能提速:

  • 过滤小面积轮廓:计算轮廓面积,只保留合理范围的(比如面积200-5000像素,根据你的圆大小调整):
    contours, _ = cv2.findContours(cleaned, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    valid_contours = []
    for cnt in contours:
        area = cv2.contourArea(cnt)
        if 200 < area < 5000:
            valid_contours.append(cnt)
    
  • 用圆度过滤非圆轮廓:通过轮廓周长和面积计算圆度(公式:4π*面积/周长²,值越接近1越圆),过滤圆度低的轮廓:
    def is_circular(cnt, min_circularity=0.7):
        perimeter = cv2.arcLength(cnt, True)
        if perimeter == 0:
            return False
        area = cv2.contourArea(cnt)
        circularity = 4 * np.pi * area / (perimeter ** 2)
        return circularity >= min_circularity
    
    circular_contours = [cnt for cnt in valid_contours if is_circular(cnt)]
    

四、关于“圆不够规整”的疑问

手绘圆肯定和机器正圆有差距,但只要预处理到位,上述方法都能识别。如果还是不行,可能是笔迹太淡、边缘断续严重,可先做对比度增强:cv2.equalizeHist(gray),再走预处理流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:02:35