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

如何通过HSV色彩空间饱和度值提取焊接图像黑色目标的外轮廓

焊接焊道分割残留白点处理方案

  • 优先对提取到的饱和度分量图做中值滤波预处理,选择3x3或5x5卷积核即可,中值滤波对离散型白点噪声的消除效果远好于线性滤波,同时不会过度模糊焊道的边缘轮廓。
  • 分割时替换全局阈值为自适应阈值,焊接场景普遍存在局部光照不均问题,全局阈值极易残留杂散亮斑,可选择自适应高斯阈值,也可搭配OTSU算法自动计算最优分割阈值,减少背景误判。
  • 结合形态学操作+连通域面积过滤二次提纯:先做开运算(先腐蚀后膨胀)消除体积过小的白点噪声,再对得到的二值图做连通域分析,直接删除面积小于预设阈值的小连通域,剩余大面积连通域即为目标焊道区域。
  • 若效果仍不符合预期,可结合HSV空间的Hue(色相)通道做联合掩码,焊接焊道与背景母材的色相差异明显,和饱和度通道做与运算后可进一步过滤背景误判的亮斑。

参考代码(与现有代码逻辑衔接)

import cv2
import numpy as np

image = cv2.imread('capture.png')
hsvImage = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
s_channel = hsvImage[:, :, 1]

# 中值滤波去离散白点
blur = cv2.medianBlur(s_channel, 5)

# 自适应阈值分割
thresh = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
# 也可选择OTSU全局阈值方案
# _, thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)

# 形态学开运算去小亮点噪声
kernel = np.ones((3,3), np.uint8)
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=2)

# 连通域面积过滤,面积阈值可根据实际图像尺寸调整
num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(opening, connectivity=8)
output = np.zeros_like(opening)
for i in range(1, num_labels):
    if stats[i, cv2.CC_STAT_AREA] > 100:
        output[labels == i] = 255

cv2.imshow('processed result', output)
cv2.waitKey(0)

针对你提取的饱和度图特征,上述流程可过滤掉绝大多数散状白点,同时保留完整的焊道轮廓。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:36:04